【发布时间】:2015-11-16 21:14:54
【问题描述】:
我有一个 MongoDB 文档,其中的记录如下所示:
[
{ _id: id, category_name: 'category1', parent_category: null },
{ _id: id, category_name: 'category2', parent_category: null },
{ _id: id, category_name: 'subcategory1', parent_category: id_parent_1 },
{ _id: id, category_name: 'subcategory2', parent_category: id_parent_1 },
{ _id: id, category_name: 'subcategory3', parent_category: id_parent_2 },
{ _id: id, category_name: 'subcategory4', parent_category: id_parent_2 }
]
如您所见,我使用parent_category 或null 存储类别,子类别具有父类别的ID。我正在寻找的是将这些分组为某种格式,如下所示:
[
{ category_name: 'category1', categories: [
{ category_name: 'subcategory1', _id: id },
{ category_name: 'subcategory2', _id: id }
]
},
{ category_name: 'category2', categories: [
{ category_name: 'subcategory3', _id: id },
{ category_name: 'subcategory4', _id: id }
]
}
]
所以基本上将父类别与它们的子类别组成一个数组。我正在使用猫鼬。我尝试使用 MongoDB 提供的聚合框架,但无法获得所需的结果。 :(
我有权以任何可能需要的方式修改架构!
提前致谢!
【问题讨论】:
-
您最初为什么要这样设计您的文档?也许你可以重新设计你的猫鼬模式并制作一些方法来验证 parent_id 以分配子类别
-
只是两级分类吗?您的子类别可以有自己的子类别吗?
-
@JoseOsorio 我不太明白你的意思
-
@yarons 是的,只有两个级别,类别和子类别
-
查看猫鼬的这个类别树库:github.com/incrediblesound/category-tree。这是作者的一篇博文:incrediblesound.github.io/blog/2014/07/27/…
标签: javascript node.js mongodb mongoose nosql