1
我有兩個集合users
和`groups。讓我們假裝當前收藏中有以下數據。
的users
收集具有以下文件
{
"_id":"57a944390b1acf0d069388c1",
"first":"John",
"last":"Smith",
"email":"[email protected]",
"groups":[
{
"id":"57aab09c0b1acf135a6b6856",
"name":"Group A"
},
{
"id":"57aab0ed0b1acf135a6b6857",
"name":"Group B"
},
{
"id":"57b008be31a5a202ee4ff47b",
"name":"Group C"
}
]
}
的groups
收集有以下兩個文件
[
{
"_id":"57aab0ed0b1acf135a6b6857",
"name":"Group B",
"requests":[
{
"_id":"57b14b1831a5a2756fbc9873",
"description":"Request A",
"denied_requests":[ ]
}
]
} {
"_id":"57b008be31a5a202ee4ff47b",
"name":"Group C",
"requests":[
{
"_id":"57b14c2131a5a2756fbc9874",
"description":"Request B",
"denied_requests":[ ]
},
{
"_id":"57b14e3131a5a2756fbc9875",
"description":"Request C",
"denied_requests":[
"57a944390b1acf0d069388c1"
]
}
]
}
]
我需要做的是使用聚合管道來查詢用戶的所有請求排除用戶拒絕的請求。
我想這將包括以下psudo步驟user_id
作爲問題的輸入。
$match
用戶_id
字段$project
的組使用先前步驟$lookup
的結果id
S上的id
從$project
上users.groups
在groups
集合的_id
$match
在requests
上,根據請求,沒有當前用戶標識denied_requests
數組。
表示用戶_id
採樣輸入
樣例輸入到這將是57a944390b1acf0d069388c1
樣本輸出
樣本輸出到這將是要求將下列表用戶沒有拒絕。
[
{
"_id":"57b14b1831a5a2756fbc9873",
"description":"Request A",
"denied_requests":[]
},
{
"_id":"57b14c2131a5a2756fbc9874",
"description":"Request B",
"denied_requests":[ ]
}
]
我嘗試這樣做,看起來沒有什麼後的第一個'$ lookup' – TheJediCowboy
我剛剛意識到DB返回我當時的反感是<3.2,這意味着$ lookup不被支持,並且正在悄然失敗。 – TheJediCowboy
https://github.com/facebook/react-native/issues/7626我相信涵蓋了這一點。 – TheJediCowboy