MongoDB如何查询去重字段并统计文档内嵌数组的元素数量
MongoDB查询解决方案
你可以通过MongoDB自带的聚合管道能力实现需求,以下是适配你给出示例和预期结果的查询语句:
db.你的集合名.aggregate([ // 第一步:按categoryCode分组实现去重 { $group: { _id: "$categoryCode", // 提取分组内第一条数据的分类名称 categoryName: { $first: "$categoryName" }, // 统计分组内第一条数据的accessories数组长度 accessoriesCount: { $first: { $size: "$accessories" } } } }, // 第二步:调整返回字段的格式,符合预期结构 { $project: { _id: 0, categoryCode: "$_id", categoryName: 1, accessoriesCount: 1 } } ])
扩展说明
- 如果你需要按
categoryCode + categoryName的组合进行去重,只需要把$group阶段的_id值修改为{categoryCode: "$categoryCode", categoryName: "$categoryName"},同时调整$project阶段的categoryCode赋值逻辑即可 - 如果你需要统计同一个分类下所有文档的
accessories数组元素总个数,只需要把accessoriesCount的计算逻辑替换为{ $sum: { $size: "$accessories" } }即可
内容的提问来源于stack exchange,提问作者prabhakar srivastava
相关产品推荐
相关产品推荐

