只返回匹配數組我有一個集合中的下列文件:MongoDB的 - 從Object
{
"_id" : 101,
"students" : [
{
"name" : "john",
"age" : 10,
"city":'CA'
},
{
"name" : "danial",
"age" : 15,
"city":'KA'
}
]
}
{
"_id" : 102,
"students" : [
{
"name" : "adam",
"age" : 20,
"city":'NY'
},
{
"name" : "johnson",
"age" : 12,
"city":'CA'
}
]
}
而且我火了以下查詢:
db.data.find({'students.city':'CA'})
這將返回來自我的「學生」對象這兩份文件的一個實例與過濾器(「城市」;「CA」)匹配。
但是,我希望只在結果中獲得匹配數組。就是我想要的結果如下:
{
"_id" : 101,
"students" : [
{
"name" : "john",
"age" : 10,
"city":'CA'
}
]
}
{
"_id" : 102,
"students" : [
{
"name" : "johnson",
"age" : 12,
"city":'CA'
}
]
}
請幫助。
不,這是明顯錯誤的。請參閱[我的答案](http://stackoverflow.com/a/35408883/1296707)。 –
是的。你是對的。再次確認後。這是更好的方式。 糾正我,如果我錯了: 我說要使用聚合,因爲我認爲你不能使用find()操作返回匹配您的條件的數組的多個元素。但是因爲它是不同的文檔,每個文檔只有一個匹配的元素。你的方式是正確的。 –
我沒有檢查過,但我認爲可以在投影中使用「$或」... –