gpt4 book ai didi

javascript - 如何按 Mongoose 中的字段对记录进行分组?

转载 作者:行者123 更新时间:2023-11-30 10:00:02 26 4
gpt4 key购买 nike

我有一个 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 }
]

如您所见,我使用 nullparent_category 存储类别,子类别具有父类别的 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 }
]
}
]

因此,基本上将父类别与一个包含子类别的数组分组。我正在使用 Mongoose 。我尝试使用 MongoDB 提供的聚合框架,但无法获得所需的结果。 :(

我有权以任何可能需要的方式修改模式!

提前致谢!

最佳答案

您似乎将 Mongo 视为关系数据库(将所有这些字段分开并通过查询将它们组合在一起)。你应该做的是重建你的架构。例如:

var CategorySchema = new Schema({
category_name: String,
subCategories:[subCategorySchema]
}

var subCategorySchema = new Schema({
category_name: String
})

当您需要查询集合时,这种方式很简单

db.find({category_name: "name of the category"}, function(){})

得到你需要的一切。

以防万一:您可以通过简单的更新将子类别添加到数组中。阅读this了解更多信息。

关于javascript - 如何按 Mongoose 中的字段对记录进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32165507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com