sql >> Databáze >  >> NoSQL >> MongoDB

najít a počítat v jediném dotazu mongodb

Toto je perfektní práce pro agregační rámec.

db.course.aggregate(
    [
        { "$sort": { "created_at": -1 }},
        { "$group": {
            "_id": null, 
            "docs": { "$push": "$$ROOT" }, 
            "count": { "$sum": 1 }
        }},
        { "$project": { "_id": 0, "count": 1, "docs": { "$slice": [ "$docs", 5 ] } }}
    ]
)

Pokud váš server MongoDB nepodporuje $slice pak musíte použít ošklivý a neefektivní přístup.

db.course.aggregate(
    [
        { "$sort": { "created_at": -1 }},
        { "$group": {
            "_id": null, 
            "docs": { "$push": "$$ROOT" }, 
            "count": { "$sum": 1 }
        }},
        { "$unwind": "$docs" },
        { "$limit": 5 }
    ]
)


  1. Jak přidat json do vnořeného pole mongodb dokumentu pomocí Spring?

  2. DateTime s MongoDB/Mongoid a Rails 3 se nenaplňují

  3. Vynásobte pole hodnotou v Mongodb

  4. Více databází v MongoDB pro SaaS