我正在尝试像这样的类别树:
1. Category 1,
2. - Category 1.1
3. - Category 1.2
4. - - Category 1.2.1
5. Category 2
我的模式:
var Category = new Schema({
name: {type:String, unique: true },
description: String,
sub: { type: Schema.Types.ObjectId, ref:'Category', required: false, default: null },
});
以下是数据库中的数据:https://pastebin.com/9RhQEymg
我的查询(使用猫鼬):
Category.find({ sub: null }).lean().populate({ path: 'sub', model: Category }).exec()
我想获取不带子类别的所有类别(主要类别) 然后获取所有这些类别中的子类别列表。 结果看起来像这样:
{
"pageCount": 1,
"object": "list",
"has_more": false,
"data": [
{
"_id": "5c71291ec5c336212c7033b3",
"sub": null,
"slug": "cat-1",
"name": "cat 1",
"__v": 0
},
{
"_id": "5c71299eef95fa085c45f268",
"sub": null,
"slug": "cat-2",
"name": "cat 2",
"__v": 0
}
]
}
我的想法不好吗?我可以不使用子数组来填充它吗?
var Category = new Schema({
name: {type:String, unique: true },
description: String,
sub: [{ type: Schema.Types.ObjectId, ref:'Category', required: false, default: null }]
});
可将所有子类别存储在主要类别中?