「ゲーム」と呼ばれる 1 つのコレクションがあり、そのドキュメントにはゲームの所有者の ID が格納されています。
{
"owner" : "88878b6c25c167d"
}
{
"owner" : "88878b6c25c167d"
}
{
"owner" : "af565f77f73469b"
}
次に、「users」という別のコレクションがあります。
{
"id" : "af565f77f73469b"
}
{
"id" : "a881335e1d4cf17"
}
{
"id" : "aa3ce3f7767c46b"
}
{
"id" : "d19e52c0bd78bcb"
}
{
"id" : "88878b6c25c167d"
}
したがって、最初に実行するクエリは、すべてのゲームの所有者を取得し、それらの値を配列に格納します。['88878b6c25c167d', '88878b6c25c167d', 'af565f77f73469b']
実行する 2 番目のクエリは、対応する ID を持つユーザーのドキュメントを取得する必要があります。以前は、次のクエリを使用していました。
db.users.find({'id':
{'$in': [
'88878b6c25c167d',
'88878b6c25c167d',
'af565f77f73469b'
]}})
これには問題があります。上記のように、ユーザーが 2 回リストされている場合、重複したドキュメントは返されません。代わりに、1つだけ取得します。これは私のアプリケーションを壊します。各所有者がドキュメントを返却するようにするにはどうすればよいですか?