sql >> Databáze >  >> NoSQL >> MongoDB

Počítejte výskyty ve vnořených dokumentech mongodb a udržovací skupině

Můžete použít níže uvedenou agregaci.

Seskupte podle otázky a odpovědi, abyste získali počet kombinací, a poté seskupte po otázce, abyste získali odpověď a její počet.

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

Níže uvedený kód můžete použít k získání požadovaného formátu v 3.4.

Změňte $group klíče do kav následované $addFields s $arrayToObject transformovat pole na pojmenované páry klíč-hodnota.

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. Je memcached dinosaurus ve srovnání s Redisem?

  2. NodeJS Express Dependency Injection a databázová připojení

  3. MongoDB:Server má varování při spuštění ''Řízení přístupu není povoleno pro databázi''

  4. Mongoose:Odebrat objekt z pole na základě ID (Cast Error)