我正在重温我第一次使用 MongoDB 的旧项目。在这个项目中,我的模型定义为:
var ItemSchema = new mongoose.Schema({
name: {type: String},
category: {type: String},
subcategory: {type: String},
status: {type: String},
description: {type: String},
value: {type: Number, default: 1}
});
该Items
集合包含数百个这种格式的文档。
现在,我试图返回一个 distinct 列表,Category
其中包含所有关联的 distinct Subcategory
。所需的输出类似于:
{
"CategoryName1": [
"SubcategoryName",
"SubcategoryName",
"SubcategoryName",
...
],
"CategoryName2": [
"SubcategoryName",
"SubcategoryName",
"SubcategoryName",
...
]
}
使用我现有的模型,并且每个类别和子类别对每个项目都列出了不止一次,这种类型的查询是否可能?或者是否需要重组数据?由于这是我的第一次尝试,我不反对重新格式化数据。
通过使用以下方法得到了这个工作:
db.items.aggregate(
[
{ $group : { _id : "$category", subcategory: { $addToSet: "$subcategory" } } }
]
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句