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

MongoDBは完全に一致する配列を検索しますが、順序は重要ではありません

    現在受け入れられている回答は、配列が完全に一致することを保証するものではなく、サイズが同じであり、配列がクエリ配列と少なくとも1つのアイテムを共有していることだけを保証します。

    たとえば、クエリ

    db.coll.find({ "hobbies": { "$size" : 2, "$in": [ "2", "1", "5", "hamburger" ] }  });
    

    その場合でもユーザーkaushikを返します。

    完全に一致させるために必要なことは、$sizeを組み合わせることです。 $allを使用 、そのように:

    db.coll.find({ "hobbies": { "$size" : 2, "$all": [ "2", "1" ] }  });
    

    ただし、データの量と構造によっては、これは非常にコストのかかる操作になる可能性があることに注意してください。MongoDBは挿入された配列の順序を安定させているため、DBに挿入するときに配列がソートされた順序になるようにすると、うまくいく可能性があります。クエリを実行するときに静的な順序に依存できるようにします。



    1. ObjectIdに対する正規表現を使用してMongoDBをクエリします

    2. PHPスクリプトからRedisに接続しようとしたときに許可が拒否されたトラブルシューティング

    3. CDH用のApachePhoenix

    4. ドキュメントの配列内のオブジェクトをどのように更新しますか(ネストされた更新)