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

Tìm nhóm giá trị riêng biệt theo trường khác mongodb

bạn cần viết một đường dẫn tổng hợp

  • $match - lọc các tài liệu theo tiêu chí
  • $group - nhóm các tài liệu theo trường chính
  • $addToSet - tổng hợp các yếu tố duy nhất
  • $project - dự án ở định dạng bắt buộc
  • $reduce - giảm mảng của mảng thành mảng bằng $concatArrays

truy vấn tổng hợp

db.tt.aggregate([
    {$match : {"time_broadcast" : "09:13"}}, 
    {$group : {"_id" : "$page_id", "category_list" : {$addToSet : "$category_list"}}}, 
    {$project : {"_id" : 0, "page_id" : "$_id", "category_list" : {$reduce : {input : "$category_list", initialValue : [], in: { $concatArrays : ["$$value", "$$this"] }}}}}
]).pretty()

kết quả

{ "page_id" : "123456", "category_list" : [ "news", "updates" ] }
{
        "page_id" : "1234",
        "category_list" : [
                "sport",
                "handball",
                "football",
                "sport"
        ]
}

bạn có thể thêm $sort bởi page_id đường ống nếu được yêu cầu




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm xem đối tượng có bị thay đổi trong mongoose trước lưu móc hay không

  2. Định hình lại tài liệu bằng cách tách một giá trị trường

  3. Tìm một chuỗi trong một chuỗi trong SQL

  4. Khởi động mùa xuân cố gắng kết nối với mongo khi thêm phụ thuộc mongo-java-driver maven

  5. MongoDB:Làm cách nào để xuất đúng bộ sưu tập từ MongoDB sang máy tính của tôi?