MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come posso ottenere i valori più bassi in una raccolta MongoDB?

Devi $group i tuoi documenti per "prezzo". Da lì, $sort per "_id" in ordine crescente e utilizzare $limit restituire il primo documento che nient'altro che il documento con il valore minimo.

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

che produce qualcosa come:

{
    "_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"
        }
    ]
}