sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan jag få de lägsta värdena i en MongoDB-samling?

Du måste $group dina dokument efter "pris". Därifrån $sort dem efter "_id" i stigande ordning och använd $limit att returnera det första dokumentet som inget annat än dokumentet med minimivärdet.

db.products.aggregate([ 
    { "$group": { 
        "_id": "$price", 
        "docs": { "$push": "$$ROOT" } 
    }},
    { "$sort": { "_id": 1 } }, 
    { "$limit": 1 } 
])

som producerar något som:

{
    "_id" : 100,
    "docs" : [
        {
            "_id" : ObjectId("574a161b17569e552e35edb5"),
            "product" : "Milk",
            "barcode" : 12345,
            "price" : 100,
            "store" : "BestBuy"
        },
        {
            "_id" : ObjectId("574a161b17569e552e35edb6"),
            "product" : "Milk",
            "barcode" : 12345,
            "price" : 100,
            "store" : "WalMart"
        }
    ]
}



  1. Matchande skick för sammanlagda antal Array-medlemmar

  2. Hur beställer MongoDB sina dokument i en samling?

  3. $elemMatch motsvarande i vårdata mongodb

  4. Redis Sentinels med TLS