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

特定のキーと値のペアはあるが、他のキーと値のペアがないドキュメントを選択する

    クエリの試行では、同じ「キー」が2回使用されます。同じキーの値を本質的に「上書き」しているため、オブジェクト構造でこれを行うことはできません。したがって、考慮される実際のクエリは、そのキーの「2番目の」条件にすぎません。

    したがって、同じキーに対して複数の条件を設定する場合は、を使用します。 $and 演算子:

    db.collection.aggregate([
        { "$match": {
            "$and": [
                { "genericParams.key": { "$exists": true, "$ne": "manual_funds_processed" } },
                { "genericParams.key": "third_sms_email_time" }
            ] 
        },
        // other stages
    })
    

    または、すべてのMongoDB条件はデフォルトで実際には「and」引数であるため、 $eq この場合:

    db.collection.aggregate([
        { "$match": {
            "genericParams.key": { 
                "$ne": "manual_refund_processed", 
                "$eq": "third_sms_email_time"
            }
        }},
        // other stages
    ])
    

    ここで、.aggregate()について特別なことは何もないことに注意してください。 ここでは、ドキュメント選択の作業を行うのは基本的な「クエリ」部分にすぎないためです。

    また、「正の」条件が存在することにも注意してください($eq$existsを使用する必要はありません 少なくともその要素が一致する必要があることをすでにテストしているためです。




    1. ClusterControlを補完するコミュニティのMongoDBツール

    2. $sampleを使用したMongoDBの集約が非常に遅い

    3. 1回の呼び出しでオブジェクトの配列をmongooseDBに保存するにはどうすればよいですか?

    4. Stackexchange.Redisのファイア・アンド・フォーゲットは配信を保証しますか?