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

Mongodb:Použijte počet záznamů v agregaci po skupině

Můžete použít níže uvedený agregační dotaz.

Počáteční $group pro výpočet celkového počtu při $push pole konceptů do pole pole. $$ROOT pro přístup k celému dokumentu.

Zachovat celkový počet článků v další $group .

Odpočinek zůstane tak, jak jste dosud.

db.articles.aggregate([
  {"$group":{
    "_id":null,
    "totalArticles":{"$sum":1},
    "concepts":{"$push":"$$ROOT.concepts"}
  }},
  {"$unwind":"$concepts"},
  {"$group":{
    "_id":"$concepts.text",
    "totalArticles":{"$first":"$totalArticles"},
    "count":{"$sum":1},
    "average":{"$avg":"$concepts.relevance"}
  }},
  {"$project":{
      "count": "$count",
      "percent": {
        "$divide": [ "$count", "$totalArticles" ]
      }
    }
  },
  {"$sort": {"count": -1}}
])

$facets je také možnost, kde můžete dva dotazy ve dvou samostatných kanálech následovat sloučení a pokračovat ve zbývajících fázích.




  1. MongoDB:bezpodmínečné aktualizace?

  2. Jak propojit mongoDB s pythonem?

  3. Jak přidat objednávku pomocí @query v úložišti mongodb

  4. Zkontrolujte, zda existuje databáze mongodb?