外部配列内のObjectIDに一致するドキュメントを検索します

マット

私はコレクションを持っていますUsers

{
  _id: "5cds8f8rfdshfd"
  name: "Ted"
  attending: [ObjectId("2cd9fjdkfsld")]
}

私は別のコレクションを持っていますEvents

{
  _id: "2cd9fjdkfsld"
  title: "Some Event Attended"
},
{
  _id: "34dshfj29jg"
  title: "Some Event NOT Attended"
}

特定のユーザーが参加しているすべてのイベントのリストを返したいのですが。ただし、Eventsこれはより大きなクエリの一部であるため、コレクションからこのクエリを実行する必要があります。

私は次の質問をしました:

私は自分の状況に合うように上記の答えを修正するさまざまな方法を試しましたが、失敗しました。3番目の質問2番目の回答は私に最も近いものですが、値0で返されるのではなく、一致しない結果を除外したいと思います。

私の希望する出力:

[
  {
    _id: "2cd9fjdkfsld"
    title: "Some Event Attended"
  },
]
ドニックレス

1つのオプションは次のようになります。

db.getCollection('Events').aggregate({
    $lookup: // join
    {
        from: "Users", // on Users collection
        let: { eId: "$_id" }, // keep a local variable "eId" that points to the currently looked at event's "_id"
        pipeline: [{
            $match: { // filter where
                "_id": ObjectId("5c6efc937ef75175b2b8e7a4"), // a specific user
                $expr: { $in: [ "$$eId", "$attending" ] } // attends the event we're looking at
            }
        }],
        as: "users" // push all matched users into the "users" array
    }
}, {
    $match: { // remove events that the user does not attend
        "users": { $ne: [] }
    }
})

users必要に応じて別の投影を追加することで、明らかにフィールドを取り除くことができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MongoDBのオブジェクト配列内の複数のフィールドに一致するドキュメントを検索します

分類Dev

MongoDB-複数のプロパティが同じ配列要素内の条件に一致するドキュメントを検索します

分類Dev

オブジェクトの配列内のobjectIdに一致するドキュメント全体を削除します-MongoDB

分類Dev

配列内で一致する数が最も多い(一致しない数が少ない)ドキュメントを検索します

分類Dev

マングース:配列内のラベルを検索し、一致するドキュメントを返します

分類Dev

配列値の最小量に一致するすべてのドキュメントを検索する

分類Dev

mongodbは、配列内の各要素に一致するドキュメントを削除します

分類Dev

マングース-配列に一致するものがないドキュメントを検索します

分類Dev

条件に一致する埋め込み配列要素の数でドキュメントを検索します

分類Dev

MongoDBは一致するドキュメントを検索し、オブジェクトの配列内の一致するフィールドを更新します

分類Dev

配列を指定して一致するドキュメントを検索するPhpmongo

分類Dev

MongoDB:単一のドキュメントから一致するすべての配列要素を検索します

分類Dev

Firestore / Cloud機能:条件に一致するドキュメント参照の配列からドキュメントを検索する

分類Dev

mongodb-クエリに一致する最初のサブドキュメントを検索します

分類Dev

IDの配列でドキュメントを検索し、一致しなかったドキュメントを通知する方法

分類Dev

特定の一致数の配列を持つドキュメントを検索する

分類Dev

mongodbのobjectIdに一致するオブジェクトの配列を検索します

分類Dev

ドキュメント内を検索し、elasticsearch での検索に一致するプロパティを取得する

分類Dev

マングースは入力の部分文字列に一致するすべてのドキュメントを検索します

分類Dev

すべてのサブドキュメントが基準に一致するMongoDBドキュメントを検索します

分類Dev

配列内のフィールドとサブドキュメントフィールドに一致するMongoDb内のドキュメントを検索する方法

分類Dev

ネストされたサブドキュメント配列で特定の条件に一致するドキュメントの総数を検索します

分類Dev

objectIdの配列を持つドキュメントを検索する

分類Dev

リスト内のパンダ列で一致するキーワードの数を検索します

分類Dev

配列内のすべての要素が条件に一致する場合、Mongoはドキュメントを削除します

分類Dev

Elasticsearch-jsonドキュメント内の特別な文字(-)で完全に一致する文字列を検索する方法

分類Dev

mongodb-配列内の要素の1つがクエリに一致する場合、ドキュメントを無視します

分類Dev

MongoDB:日付範囲の条件が一致するドキュメントを除くすべてのドキュメントを検索します

分類Dev

連続する配列要素に一致するドキュメントをクエリします

Related 関連記事

  1. 1

    MongoDBのオブジェクト配列内の複数のフィールドに一致するドキュメントを検索します

  2. 2

    MongoDB-複数のプロパティが同じ配列要素内の条件に一致するドキュメントを検索します

  3. 3

    オブジェクトの配列内のobjectIdに一致するドキュメント全体を削除します-MongoDB

  4. 4

    配列内で一致する数が最も多い(一致しない数が少ない)ドキュメントを検索します

  5. 5

    マングース:配列内のラベルを検索し、一致するドキュメントを返します

  6. 6

    配列値の最小量に一致するすべてのドキュメントを検索する

  7. 7

    mongodbは、配列内の各要素に一致するドキュメントを削除します

  8. 8

    マングース-配列に一致するものがないドキュメントを検索します

  9. 9

    条件に一致する埋め込み配列要素の数でドキュメントを検索します

  10. 10

    MongoDBは一致するドキュメントを検索し、オブジェクトの配列内の一致するフィールドを更新します

  11. 11

    配列を指定して一致するドキュメントを検索するPhpmongo

  12. 12

    MongoDB:単一のドキュメントから一致するすべての配列要素を検索します

  13. 13

    Firestore / Cloud機能:条件に一致するドキュメント参照の配列からドキュメントを検索する

  14. 14

    mongodb-クエリに一致する最初のサブドキュメントを検索します

  15. 15

    IDの配列でドキュメントを検索し、一致しなかったドキュメントを通知する方法

  16. 16

    特定の一致数の配列を持つドキュメントを検索する

  17. 17

    mongodbのobjectIdに一致するオブジェクトの配列を検索します

  18. 18

    ドキュメント内を検索し、elasticsearch での検索に一致するプロパティを取得する

  19. 19

    マングースは入力の部分文字列に一致するすべてのドキュメントを検索します

  20. 20

    すべてのサブドキュメントが基準に一致するMongoDBドキュメントを検索します

  21. 21

    配列内のフィールドとサブドキュメントフィールドに一致するMongoDb内のドキュメントを検索する方法

  22. 22

    ネストされたサブドキュメント配列で特定の条件に一致するドキュメントの総数を検索します

  23. 23

    objectIdの配列を持つドキュメントを検索する

  24. 24

    リスト内のパンダ列で一致するキーワードの数を検索します

  25. 25

    配列内のすべての要素が条件に一致する場合、Mongoはドキュメントを削除します

  26. 26

    Elasticsearch-jsonドキュメント内の特別な文字(-)で完全に一致する文字列を検索する方法

  27. 27

    mongodb-配列内の要素の1つがクエリに一致する場合、ドキュメントを無視します

  28. 28

    MongoDB:日付範囲の条件が一致するドキュメントを除くすべてのドキュメントを検索します

  29. 29

    連続する配列要素に一致するドキュメントをクエリします

ホットタグ

アーカイブ