MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB - pobierz dokumenty z maksymalnym atrybutem na grupę w kolekcji

Agregacja MongoDB oferuje $max operatora, ale w twoim przypadku chcesz, aby „cały” rekord był taki, jaki jest. Odpowiednią rzeczą do zrobienia tutaj jest $sort a następnie użyj $first operator w $group oświadczenie:

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

Tak więc „sortowanie” zapewnia właściwą kolejność, a „grupowanie” wybiera pierwsze wystąpienie w kluczu „grupowanie”, w którym istnieją te pola.

Głównie $first tutaj, ponieważ $sort odbywa się w odwrotnej kolejności. Możesz także użyć $last również w kolejności rosnącej.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Usuń wszystkie pola, które są puste

  2. Jak pisać zapytania składające w mongoDB

  3. Jak wykluczyć z wyników wyszukiwania dokumenty z polami, których nie ma w zapytaniu?

  4. Agregacja Mongo z danymi podzielonymi na strony i sumami

  5. Jak połączyć się z mongodb za pomocą sailsjs v0.10?