0

「ゲーム」と呼ばれる 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つだけ取得します。これは私のアプリケーションを壊します。各所有者がドキュメントを返却するようにするにはどうすればよいですか?

4

1 に答える 1

1

id-sMongoDB は完全に正常に動作します ---配列に含まれるすべてのユーザーを検索します。

あなたのニーズのより広い文脈がわからない (何が悪いgamesのかではなく、達成したいことを教えてください) users

  1. ゲームのコレクションを取得した後。owner id指定されたゲームの配列を返す補助ハッシュ マップ (通常の JS オブジェクト) を作成するだけです。
  2. 所有者であるユーザーに関する情報を取得します。
  3. 知りたい場合は、どのゲームが特定に属しているかを知りたい場合は、1 からデータ構造にuser彼女を渡し、ゲームの配列を取得します。id

それはあなたが探していたものですか?1. についてサポートが必要ですか?

于 2013-11-14T10:35:03.943 に答える