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
コレクションは、次の2つの文書を持っている次のドキュメントがあり
[
{
"_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
が指定されています。 groups
コレクション
$match
の_id
にusers.groups
に$project
からid
を使用してユーザ_id
フィールドに
$match
$project
基id
の前のステップ$lookup
の結果からrequests
にあると、現在のユーザーIDはdenied_requests
アレイにありません。これに
サンプル入力
サンプル入力はこれに
サンプル出力は、要求の次のリストになり57a944390b1acf0d069388c1
ユーザーを表す_id
サンプル出力になりますユーザーは拒否していません。
[
{
"_id":"57b14b1831a5a2756fbc9873",
"description":"Request A",
"denied_requests":[]
},
{
"_id":"57b14c2131a5a2756fbc9874",
"description":"Request B",
"denied_requests":[ ]
}
]
私はこれを試してみましたが、それは何も最初に '$ lookup' – TheJediCowboy
私はちょうどDBことに気づいた後に返されていないように見えます私はagaisnt <3.2であったので、$ルックアップはサポートされておらず、黙って失敗していました。 – TheJediCowboy
https://github.com/facebook/react-native/issues/7626私はこれをカバーすると信じています。 – TheJediCowboy