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

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