[英]Get multiple matched elements from the double nested array of objects mongodb
[英]MongoDB: Get all elements of a nested array
是否有可能使用find()
獲取保存在嵌套數組中的每個元素。 我需要獲取保存在文檔的cat字段中的所有元素的列表。
{
"_id" : "1",
"title" : "title 1",
"cat" : [
{
"element" : "element 1"
},
{
"element" : "element 2"
}
]
},
{
"_id" : "2",
"title" : "title 2",
"cat" : [
{
"element" : "element 3"
},
{
"element" : "element 4"
}
]
}
此示例的結果應該是-因為我還需要該文檔的ID:
1, element 1
1, element 2
2, element 3
2, element 4
您也可以嘗試使用distinct
以下查詢:
db.collection.distinct("cat.element")
編輯:
然后,您可以嘗試$ map 作為重復問題中標記的內容,例如:
您可以像這樣簡單地使用它:
db.collection.aggregate({
"$project": {
"cat": {
"$map": {
"input": "$cat",
"as": "el",
"in": "$$el.element"
}
},
"title": 1
}
})
要么
db.collection.aggregate({
"$project": {
"cat": {
"$map": {
"input": "$cat",
"as": "el",
"in": "$$el.element"
}
},
"title": 1
}
}, {
$group: {
_id: "$_id",
"title": {
$first: "$title"
},
"cat": {
"$first": "$cat"
}
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.