MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como posso obter os valores mais baixos em uma coleção do MongoDB?


Você precisa $group seus documentos por "preço". A partir daí, você $sort por "_id" em ordem crescente e use $limit para retornar o primeiro documento que nada mais é do que o documento com o valor mínimo.
db.products.aggregate([ 
    { "$group": { 
        "_id": "$price", 
        "docs": { "$push": "$$ROOT" } 
    }},
    { "$sort": { "_id": 1 } }, 
    { "$limit": 1 } 
])

que produz algo como:
{
    "_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"
        }
    ]
}