我的Mongo數據庫中有兩個集合,并且Foo包含對一個或多個Bars的引用:Foo: { prop1: true, prop2: true, bars: [ { "$ref": "Bar", "$id": ObjectId("blahblahblah") } ]}Bar: { testprop: true}我想要的是找到所有Foo至少Bar具有一個testprop設置為true的。我已經嘗試過此命令,但不會返回任何結果:db.Foo.find({ "bars.testprop" : { "$in": [ true ] } })有任何想法嗎?
3 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
您現在可以在Mongo 3.2中使用 $lookup
$lookup 接受四個論點
from:在同一數據庫中指定要執行連接的集合。from集合無法分片。
localField:指定從文檔輸入到$ lookup階段的字段。$ lookup在from集合的文檔中對localField和foreignField執行相等的匹配。
foreignField:指定from集合中文檔中的字段。
as:指定要添加到輸入文檔中的新數組字段的名稱。新數組字段包含from集合中的匹配文檔。
db.Foo.aggregate(
{$unwind: "$bars"},
{$lookup: {
from:"bar",
localField: "bars",
foreignField: "_id",
as: "bar"
}},
{$match: {
"bar.testprop": true
}}
)
- 3 回答
- 0 關注
- 767 瀏覽
添加回答
舉報
0/150
提交
取消