如何访问 MongoDB 中的嵌套数组?
Posted
技术标签:
【中文标题】如何访问 MongoDB 中的嵌套数组?【英文标题】:how to Access nested Arrays in MongoDB? 【发布时间】:2020-05-14 09:34:52 【问题描述】:我在 MongoDB 中有一个名为 Product 的文档。产品有一个类别数组,类别有一个子类别数组。
我正在尝试完成两件我遇到困难的事情。 1:检索给定产品ID的类别[]。例如:
products/10/categories -> categories[]2:检索给定产品 ID 和类别 ID 的子类别[]。例如:
products/10/categories/11/subcategories -> 子类别[]我的架构如下:
Products : [
"id": "productId",
"name": "productName",
"price": "productPrice",
"Categories": [
"_id": "catId",
"name": "catName",
"Subcategories": [
"_id": "subcatId",
"name": "subcatName"
,
"_id": "subcatId",
"name": "subcatName"
,
]
,
"_id": "catId",
"name": "catName",
"Subcategories": [
"_id": "subcatId",
"name": "subcatName"
,
"_id": "subcatId",
"name": "subcatName"
,
]
]
]
任何帮助将不胜感激!谢谢!
【问题讨论】:
【参考方案1】:对于你的第一个问题,你可以这样写查询
db.collection.aggregate([
$match:
"id": "productId"
,
$unwind: "$Categories"
,
$project:
"_id": "$Categories._id",
"name": "$Categories.name"
])
对于您的第二个查询,请执行此操作
db.collection.aggregate([
$match:
"id": "productId"
,
$unwind: "$Categories"
,
$match:
"Categories._id": "catId"
,
$unwind: "$Categories.Subcategories"
,
$project:
_id: "$Categories.Subcategories._id",
name: "$Categories.Subcategories.name"
])
【讨论】:
已经完成了。我能再问你一个关于使用聚合更新的问题吗? 如果需要您发布更多详细信息,您可以在此处发布另一个问题并分享链接,我很乐意提供帮助 I have posted the question here以上是关于如何访问 MongoDB 中的嵌套数组?的主要内容,如果未能解决你的问题,请参考以下文章