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

Policz wystąpienia w zagnieżdżonym dokumencie mongodb i utrzymuj grupę

Możesz użyć poniższej agregacji.

Grupuj według pytań i odpowiedzi, aby uzyskać liczbę kombinacji, a następnie grupuj po pytaniu, aby uzyskać odpowiedź i jej liczbę.

db.getCollection('testAggregate').aggregate([
  {"$group":{
    "_id":{"question":"$question","answer":"$answer"},
    "count":{"$sum":1}
  }},
  {"$group":{
    "_id":"$_id.question",
    "answers":{"$push":{"answer":"$_id.answer","count":"$count"}}
  }}
]);

Możesz użyć poniższego kodu, aby uzyskać żądany format w 3.4.

Zmień $group klucze do k i v, a następnie $addFields z $arrayToObject aby przekształcić tablicę w nazwane pary klucz-wartość.

db.getCollection('testAggregate').aggregate([
  {"$group":{
    "_id":{"question":"$question","answer":"$answer"},
    "count":{"$sum":1}
  }},
  {"$group":{
    "_id":"$_id.question",
    "answers":{"$push":{"k":"$_id.answer","v":"$count"}}
  }},
 {"$addFields":{"answers":{"$arrayToObject":"$answers"}}}
]);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ServerSelectionTimeoutError errno 11001 getaddrinfo nie powiodło się python

  2. MongoDB $dayOfWeek

  3. Usługa Mongo uległa awarii. Musisz znaleźć przyczynę awarii

  4. $dosłowne użycie w Golang-mgo

  5. jak skonstruować indeks złożony w mongodb