sql >> データベース >  >> NoSQL >> MongoDB

mongodb配列マッチング

    興味深い..問題は..$inおよび$or演算子が、に対して比較している配列の要素に適用されることです。 ドキュメント内の配列の要素ではなく、コレクション内の各ドキュメント。質問を要約すると、コレクション内のドキュメントのいずれかがサブセット> 渡された配列の。入力と出力を入れ替えない限り、これを行う方法を考えることはできません。つまり、最初の入力を見てみましょう。

    db.test.find( {a: [1,2,3,4]} );

    これを一時的なコレクションに入れることを検討してください、たとえば、temp as:

    db.temp.save( {a: [1,2,3,4]} );

    ここで、テストコレクション内の各ドキュメントを繰り返し処理し、$ all演算子を使用して一時的に「検索」し、完全に含まれていることを確認します。つまり、次のようにします。

    foreach(doc in test)
    { db.temp.find( { a: { $all: doc.a } } ); }


    これは間違いなく回避策です!この仕事をすることができる他のオペレーターがいないかどうかはわかりません。



    1. JSON文字列からBSONオブジェクトを作成する

    2. Dockerコンテナが稼働するのをどのように待つことができますか?

    3. FieldPathフィールド名に「。」を含めることはできません。 AGGREGATEを使おうとすると

    4. Mongooseコールバックに渡されるパラメーター