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

アグリゲーションの上位n個のバケットと、他のすべてのバケットを組み合わせて他のバケットにするにはどうすればよいですか?

    必要なものは、重み付けと呼ばれます。 。これを行うには、$project それらを使用し、 $condを使用します 次に、演算子を使用して、他の昇順で「重量」、降順で「購入数量」で並べ替えます。

    db.collection.aggregate([
        { "$project": { 
            "purchasequantity": 1, 
            "w": { 
                "$cond": [ { "$eq": [ "$_id", "others" ] }, 1, 0 ] 
            } 
        }}, 
        { "$sort": { "w": 1, "purchasequantity": -1 } } 
    ])
    

    どちらが返されますか:

    { "_id" : "customer100", "purchasequantity" : 4000000, "w" : 0 }
    { "_id" : "customer5", "purchasequantity" : 81800, "w" : 0 }
    { "_id" : "customer4", "purchasequantity" : 40900, "w" : 0 }
    { "_id" : "customer3", "purchasequantity" : 440, "w" : 0 }
    { "_id" : "customer1", "purchasequantity" : 300, "w" : 0 }
    { "_id" : "others", "purchasequantity" : 29999, "w" : 1 }
    



    1. socket.ioブロードキャスト機能とRedispub/subアーキテクチャ

    2. redisの再起動後にredisでluaスクリプトを実行できないのはなぜですか?

    3. Mongooseの$pushメソッドが機能しません

    4. MongoDB全文検索-一致する単語と正確なフレーズ