MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB sắp xếp trên trẻ em

Bạn có thể làm điều đó với tổng hợp sau:

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
      }
    }
  ]
);

Đầu tiên, tôi chiếu một trường bổ sung "group_id" được điền bằng _id hoặc parentId tùy thuộc vào giá trị parentId. Trường group_id được sử dụng để nhóm và tính tổng. Bước cuối cùng là nhóm trên total_count.

Khi bạn đang sử dụng mongoDb 3.4, bạn có thể xem $ graphLookup nhưng bây giờ tôi để lại cho bạn tổng hợp trước 3,4;-)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose - tìm các tài liệu phụ theo tiêu chí

  2. Làm cách nào để thêm json vào một mảng lồng nhau của tài liệu mongodb bằng Spring?

  3. Làm cách nào để tăng đúng nhiều ngày trong mongoDB?

  4. Chỉ truy xuất phần tử được truy vấn trong một mảng đối tượng trong bộ sưu tập MongoDB

  5. Cách lấy tất cả các khóa của bộ sưu tập có chứa giá trị (Chuỗi) nhất định trong mongodb