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

MongoDB – získejte dokumenty s maximálním atributem na skupinu v kolekci

Agregace MongoDB nabízí $max operátora, ale ve vašem případě chcete "celý" záznam tak, jak je. Zde je tedy vhodné udělat $sort a poté použijte $first operátor v rámci $group prohlášení:

db.collection.aggregate([
    { "$sort": { "session": 1, "age": -1 } },
    { "$group": {
        "_id": "$session",
        "age": { "$first": "$age" },
        "firstName": { "$first" "$firstName" },
        "lastName": { "$first": "$lastName" }
    }}
])

Takže "třídění" dostane správné pořadí a "seskupení" vybere první výskyt v klíči "seskupení", kde tato pole existují.

Většinou $first zde protože $sort se provádí v opačném pořadí. Můžete také použít $last i ve vzestupném pořadí.



  1. Nejlepší způsob, jak hostovat MongoDB na DigitalOcean

  2. Odinstalujte mongoDB z ubuntu

  3. Jak zjistím, kde mongoDB ukládá data? (není ve výchozím /data/db!)

  4. Použití funkce Mongoose / MongoDB $addToSet na poli objektů