MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment puis-je obtenir les valeurs les plus basses dans une collection MongoDB ?

Vous devez $group vos documents par "prix". À partir de là, vous $sort par "_id" dans l'ordre croissant et utilisez $limit pour retourner le premier document qui n'est rien d'autre que le document avec la valeur minimale.

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

qui produit quelque chose comme :

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