pme*_*ino 1 javascript mongoose mongodb nosql node.js
我有一个 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 }
]
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用parent_categoryof存储类别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 }
]
}
]
Run Code Online (Sandbox Code Playgroud)
因此,基本上将父类别与带有子类别的数组进行分组。我正在使用猫鼬。我尝试使用 MongoDB 提供的聚合框架,但无法获得所需的结果。:(
我有权以任何可能需要的方式修改架构!
提前致谢!
似乎您将 Mongo 视为关系数据库(分离所有这些字段并将它们与查询结合在一起)。你应该做的是重建你的架构。例如:
var CategorySchema = new Schema({
category_name: String,
subCategories:[subCategorySchema]
}
var subCategorySchema = new Schema({
category_name: String
})
Run Code Online (Sandbox Code Playgroud)
这样,当您需要查询集合时,这很简单
db.find({category_name: "name of the category"}, function(){})
Run Code Online (Sandbox Code Playgroud)
得到你需要的一切。
以防万一:您可以通过简单的更新将子类别添加到数组中。阅读本文了解更多信息。
| 归档时间: |
|
| 查看次数: |
5624 次 |
| 最近记录: |