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

Nhóm MongoDB theo mảng phần tử bên trong

Bạn đang sử dụng khuôn khổ nào? Đây không phải là MongoDB shell và trông giống như một số trình bao bọc kỳ lạ xung quanh MapReduce. Trong trường hợp đó, $ unwind sẽ không khả dụng và bạn cần nó cho người dùng trong khung tổng hợp. Đây là những gì bạn muốn trong trình bao mongo:

db.articles.aggregate([
  {$match: { class_date: { $gte: date } } },
  {$project: { _id: 0, class_artist: 1 } },
  {$unwind: "$class_artist" },
  {$group: { _id: "$class_artist", tags: { $sum: 1 } }},
  {$project: { _id: 0,class_artist: "$_id", tags: 1 } },
  {$sort: { tags: -1 } }
])

Thật hiệu quả:

  1. Lọc theo ngày vì bạn đã đặt var cho 7 ngày qua
  2. Chỉ chiếu (các) trường mà chúng ta cần {Chúng ta chỉ cần một! }
  3. Giải phóng mảng để bây giờ chúng ta có một bản ghi cho mọi phần tử mảng trong mọi tài liệu
  4. Nhóm trên Nghệ sĩ từ các tài liệu mở rộng
  5. Dự án thành một định dạng tài liệu mà bạn có thể sử dụng khi nhóm lộn xộn với _id
  6. Sắp xếp các kết quả theo thứ tự ngược lại để xem kết quả được gắn thẻ cao nhất trước

Và điều tuyệt vời về tổng hợp là bạn có thể dần dần xây dựng các giai đoạn đó để xem điều gì đang diễn ra.

Lắc và nướng vào quá trình cấy ghép trình điều khiển hoặc khung ODM của riêng bạn theo yêu cầu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhóm MongoDB và tính tổng với id làm khóa

  2. Làm thế nào để tạo lược đồ Mongoose với Mảng ID đối tượng?

  3. Lưu trữ hình ảnh trong cơ sở dữ liệu MongoDB

  4. Mongo Câu hỏi truy vấn $ gt, $ lt

  5. render_template với nhiều biến