sql >> Database teknologi >  >> NoSQL >> MongoDB

Tæl forekomster i indlejret mongodb-dokument og holdegruppe

Du kan bruge nedenstående aggregering.

Gruppér efter både spørgsmål og svar for at få antallet af kombinationer efterfulgt af gruppe for spørgsmål for at få svaret og dets antal.

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

Du kan bruge nedenstående kode til at få det format, du ønsker i 3.4.

Skift $group taster ind i k og v efterfulgt af $addFields med $arrayToObject at transformere arrayet til navngivne nøgleværdipar.

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. Hvad er den korrekte måde at lukke mongoforbindelsen ved hjælp af spring-mongo?

  2. MongoDB find underdokument og sorter resultaterne

  3. Mongoose sub document pre remove middleware ikke kaldt

  4. Objekt #<MongoClient> har ingen metode 'åben'