MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich die niedrigsten Werte in einer MongoDB-Sammlung erhalten?

Sie müssen $group Ihre Dokumente nach "Preis". Von dort $sort sie nach „_id“ in aufsteigender Reihenfolge und verwenden Sie $limit um das erste Dokument zurückzugeben, das nichts anderes als das Dokument mit dem Mindestwert ist.

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

was so etwas erzeugt wie:

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