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

MongoDBの$modクエリ演算子の被除数と除数を切り替えることは可能ですか?

    通常の .find $modを使用してクエリを実行します 演算子はここでは機能しませんが、それでも、集計フレームワークと $redact 演算子と $mod 算術集計演算子。

    コレクションに次のドキュメントがあるとします。

    { "_id" : ObjectId("573f624b4c01ce47a183a632"), "a" : 4 },
    { "_id" : ObjectId("573f63494c01ce47a183a634"), "a" : 12 },
    { "_id" : ObjectId("573f63504c01ce47a183a635"), "a" : 6 },
    { "_id" : ObjectId("573f63504c01ce47a183a636"), "a" : 24 }
    

    次のクエリは、60であるすべてのドキュメントを返します。 フィールドaの値を法として 0に等しい 。

    db.collection.aggregate([
        { "$redact": { 
            "$cond": [ 
                { "$eq": [ {"$mod": [ 60, "$a" ] }, 0 ] }, 
                "$$KEEP", 
                "$$PRUNE"
            ]
        }}
    ])
    

    生成するもの:

    { "_id" : ObjectId("573f624b4c01ce47a183a632"), "a" : 4 }
    { "_id" : ObjectId("573f63494c01ce47a183a634"), "a" : 12 }
    { "_id" : ObjectId("573f63504c01ce47a183a635"), "a" : 6 }
    

    もう1つのおそらく効率の悪い方法は、$where オペレーター。

    db.collection.find("60 % this.a === 0")
    



    1. MacにMongoDBをインストールする

    2. サービススタックRedisリストの更新

    3. Mongodb-条件付きの場合は集約$push

    4. RedisデータベースTTL