MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB - вземете документи с максимум атрибут за група в колекция

Агрегацията на MongoDB предлага $max оператор, но във вашия случай искате "целият" запис такъв, какъвто е. Така че подходящото нещо, което трябва да направите тук, е $sort и след това използвайте $first оператор в $group изявление:

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

Така че "сортирането" получава правилния ред, а "групирането" избира първото появяване в ключа "групиране", където съществуват тези полета.

Най-често $first тук, защото $sort се извършва в обратен ред. Можете също да използвате $last когато също е във възходящ ред.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да премахнете елемент от двойно вложен масив в документ на MongoDB.

  2. Изберете Групиране по брой и отделен брой в същата заявка за mongodb

  3. Mongodb Aggregation Framework:$group използва ли индекс?

  4. Актуализирайте вложените поддокументи в MongoDB с arrayFilters

  5. mongodb/mongoose findMany - намерете всички документи с идентификатори, изброени в масив