[英]Retrieve embedded document in MongoDB
我有一個像這樣的元素集合:
{
_id: 585b...,
data: [
{
name: "John",
age: 30
},
{
name: "Jane",
age: 31
}
]
}
我知道如何查找包含John的文檔:
db.People.find({"data.name", "John"})
但是,然后我得到了整個文檔。 我如何只獲取嵌入的文檔。 所以我想返回這個:
{
name: "John",
age: 30
}
對於上下文:這是較大數據集的一部分,我需要檢查是否對此特定文檔進行了某些更新。 由於應用程序的實現方式,嵌入的文檔將不會總是處於相同的索引。
那么如何查詢和返回嵌入式文檔呢?
使用第二個參數隱藏ID
db.people.find({"data.name", "John"}, {_id : 0})
這將輸出
data: [
{
name: "John",
age: 30
},
{
name: "Jane",
age: 31
}
]
要僅獲取嵌入式文檔,請使用聚合。
db.test.aggregate([
{
$unwind : "$data"
},
{
$match : {"data.name" : "John"}
},
{
$project : {
_id : 0,
name : "$data.name",
age : "$data.age"
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.