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

Pole $name musi być obiektem akumulacyjnym

Istnieje kilka operatorów agregacji, których można używać tylko w $group agregacja i nazwana jako $group accumulators

Tak jak użyłeś $sum tutaj musisz użyć dla name klucz również

{ "$group": {
  "_id": "$_id",
  "name": { "$first": "$name" },  //$first accumulator
  "count": { "$sum": 1 },  //$sum accumulator
  "totalValue": { "$sum": "$value" }  //$sum accumulator
}}

Akumulator jest jak tablica elementów, które gromadzi jako Array.$first -> podaje pierwsze imię, które znajduje się w grupie imion

Przykład:więc jeśli masz $_id ta sama, ale inna nazwa ["Darik","John"] określając $first da Darik i podobnie $last da Johnowi



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb niemożliwy (?) E11000 błąd zduplikowanego klucza klucz dupa podczas upsertingu

  2. MongoDB findAndModify z wielu klientów

  3. Jak wysłać zapytanie o klucz dynamiczny — projektowanie schematu mongodb

  4. Mongoose - findByIdAndUpdate - nie działa z req.body

  5. Mongodb upsert rzuca wyjątek DuplicateKeyException