[英]How to get embedded document in an array in MongoDB (with Mongoose)
[英]Get first document from an embedded document in array - MongoDB
這是我正在處理的收集數據。
{
"_id" : "1",
"embed_array" : [
{
"id" : 14,
"data" : "XXX"
},
{
"id" : 13,
"data" : "YYY"
},
{
"id" : 12,
"data" : "ZZZ"
}
]
},
{
"_id" : "2",
"embed_array" : [
{
"id" : 14,
"data" : "XXX1"
},
{
"id" : 13,
"data" : "YYY1"
},
{
"id" : 12,
"data" : "ZZZ1"
}
]
},
{
"_id" : "3",
"embed_array" : [
{
"id" : 14,
"data" : "XXX2"
},
{
"id" : 13,
"data" : "YYY2"
},
{
"id" : 12,
"data" : "ZZZ2"
}
]
}
這就是我想要得到的。
{
"id" : 14,
"data" : "XXX"
}
這是搜索條件。 “ _id”:“ 1”,“ embed_array”:第一個數組文件。
我嘗試使用$ slice,但沒有成功。
任何幫助將不勝感激。 謝謝
你可以這樣做:
db.collection.find({
_id:"1"
},
{
_id:1,
embed_array:{
$slice: 1
}
})
第一步是使用{_id:“ 1”}對_id字段進行過濾。 然后,我們使用投影僅返回所需的信息。 在這里,我們只需要“ embed_array”的第一個元素,因此我們使用$ slice運算符。
{$ slice:1}等於{$ slice:[0,1]},這意味着:獲取索引0和1之間的數組元素
它將返回
{
"_id" : "1",
"embed_array" : [
{ "id" : 14, "data" : "XXX" }
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.