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

Sortowanie MongoDB na dzieci

Możesz to zrobić za pomocą następującej agregacji:

db.collection.aggregate(
  [
    {
      $project: {
      group_id : { $cond : { if: { $ne: [ "$parentId", "" ] }, then: "$parentId", else: "$_id" }},
      count :1
      }
    },
    {
      $group: {
      _id : "$group_id",
      total_count : { $sum: "$count" }
      }
    },
    {
      $sort: {
      total_count : -1
      }
    }
  ]
);

Najpierw projektuję dodatkowe pole „group_id”, które jest wypełnione _id lub parentId w zależności od wartości parentId. Pole group_id służy do grupowania i obliczania łącznej liczby. Ostatnim krokiem jest pogrupowanie na total_count.

Korzystając z mongoDb 3.4, możesz wypróbować $graphLookup ale na razie zostawiam cię z agregacją sprzed wersji 3.4;-)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. XFS vs EXT4 — porównanie wydajności MongoDB na AWS EC2

  2. Korzystanie z indeksu geoprzestrzennego MongoDB z danymi 3D

  3. Mapowanie tablicy BsonArray na listę<> w POCO

  4. Znajdź największy rozmiar dokumentu w MongoDB

  5. MongoEngine:EmbeddedDocument v/s. Pole referencyjne