You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于OfficeLicensePurchases按年份统计新增Office数量的技术需求

按年份统计新增Office数量(基于最早License创建时间)

需求说明

  • 数据集:包含OfficeLicensePurchases列表
  • 统计规则:
    • 每个Office的创建年份由其对应最早的License对象的CreationDate确定
    • OfficeId具有唯一性,同一Office的多个License仅取最早的那个进行统计

样本数据

[
  {
    "_id": "514de62f-0a4c-46c8-ba66-5692935f0930",
    "OfficeId": "09ac58f0-8d2a-42ec-ba47-f518dd9d0904",
    "PlanName": "Plan 50",
    "PlanPrice": 777,
    "PaidValue": 330,
    "CreationDate": {
      "$date": "2017-03-08T03:00:00.000Z"
    },
    "Status": 1
  },
  {
    "_id": "e41a5923-3a69-43bb-87a4-f1169e172e2e",
    "OfficeId": "9679fdf7-02a1-4a1f-b0f0-17d3505e86e3",
    "PlanName": "Plan 50",
    "PlanPrice": 777,
    "PaidValue": 330,
    "CreationDate": {
      "$date": "2019-03-08T03:00:00.000Z"
    },
    "Status": 1
  },
  {
    "_id": "d314a8bf-0147-4aee-8357-f36db686c85a",
    "OfficeId": "eab54926-0c11-4c9f-aee2-7fbeabad4135",
    "PlanName": "Plan 50",
    "PlanPrice": 777,
    "PaidValue": 330,
    "CreationDate": {
      "$date": "2021-03-08T03:00:00.000Z"
    },
    "Status": 2
  }
]

解决方案(MongoDB聚合实现)

通过MongoDB聚合管道完成统计,核心逻辑是先按OfficeId分组取最早创建时间,再按年份统计数量:

db.OfficeLicensePurchases.aggregate([
  // 1. 按OfficeId分组,提取每个Office的最早CreationDate
  {
    $group: {
      _id: "$OfficeId",
      earliestCreationDate: { $min: "$CreationDate" }
    }
  },
  // 2. 按年份分组,统计各年份新增Office数量
  {
    $group: {
      _id: { $year: "$earliestCreationDate" },
      NewOffices: { $sum: 1 }
    }
  },
  // 3. 重命名字段并按年份排序
  {
    $project: {
      _id: 0,
      CreationYear: "$_id",
      NewOffices: 1
    }
  },
  { $sort: { CreationYear: 1 } }
])

执行结果

[
  { "CreationYear": 2017, "NewOffices": 1 },
  { "CreationYear": 2019, "NewOffices": 1 },
  { "CreationYear": 2021, "NewOffices": 1 }
]

注:样本数据中第一个Office的创建时间为2017年,因此结果中2017年对应1个新增Office,与你提供的期望结果中的2018年可能存在笔误。

内容的提问来源于stack exchange,提问作者DValdir Martins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:42:44