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

Mongodb:Użyj liczby rekordów w agregacji po grupie

Możesz użyć poniższego zapytania agregującego.

Początkowa $group aby obliczyć całkowitą liczbę podczas $push pole pojęcia do pola tablicy. $$ROOT aby uzyskać dostęp do całego dokumentu.

Zachowaj całkowitą liczbę artykułów w następnej $group .

Odpoczynek tak jak ty.

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 jest również opcją, w której możesz dwa zapytania w dwóch oddzielnych potoku, a następnie scalić, aby kontynuować z pozostałymi etapami.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Błąd połączenia MongoDB Atlas nie mógł połączyć się z serwerem...

  2. Pobieranie długości listy w MongoDB

  3. update_attributes zwraca zawsze prawdę, nawet jeśli zagnieżdżone atrybuty są nieprawidłowe

  4. Tablica wyszukiwania elementów Mongodb z połączonym wynikiem

  5. Mongodb $w przeciw polu obiektów tablicy zamiast obiektów tablicy