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

$andとMultiple$orを使用してMongoDBをクエリします

    ドキュメントには、これが不可能であるとは書かれていません。

    とだけ書かれています

    $ or演算子を複数回使用するため、このクエリは暗黙のAND演算を使用して作成できません。

    これは、これが機能することを意味します:

    db.inventory.find( {
        $and : [
            { $or : [ { price : 0.99 }, { price : 1.99 } ] },
            { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
        ]
    } )
    

    しかし、これは暗黙的であるため、そうではありません。 $and 2つの$or

    db.inventory.find({
            { $or : [ { price : 0.99 }, { price : 1.99 } ] },
            { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
    })
    

    オンラインでお試しください:mongoplayground.net/p/gL_0gKzGA-u

    これは、暗黙の $andを使用した作業ケースです。

    db.inventory.find({ price: { $ne: 1.99, $exists: true } })
    

    あなたが直面している問題は、コレクションにあなたのリクエストに一致するドキュメントがないことだと思います




    1. ClusterControlランタイム構成オプション

    2. MongoDB$ltアグリゲーションパイプラインオペレーター

    3. CentOS7へのMongoDBのインストール

    4. AzureVMはAzureRedisCacheに接続していませんが、ローカルはAzureRedisCacheに接続しています