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

khung tổng hợp mongodb - tạo _id từ hàm

Như ở MongoDB 2.4, bạn không thể triển khai bất kỳ chức năng tùy chỉnh nào trong Khung tổng hợp. Nếu bạn muốn $group bởi một hoặc nhiều trường, bạn cần thêm các trường đó thông qua các toán tử và biểu thức tổng hợp hoặc thông qua một bản cập nhật rõ ràng () nếu bạn không muốn tính toán mỗi lần.

Sử dụng Khung tổng hợp, bạn có thể thêm một bucket được tính toán trong một $project bước quy trình với $cond nhà điều hành .

Đây là một ví dụ về tính toán phạm vi dựa trên numberField sau đó có thể được sử dụng trong $group đường ống cho sum / avg / etc:

db.data.aggregate(
    { $project: {
        numberfield: 1,
        someotherfield: 1,
        bucket: {
            $cond: [ {$and: [ {$gte: ["$numberfield", 1]}, {$lte: ["$numberfield", 20]} ] }, '1-20', {
            $cond: [ {$lt: ["$numberfield", 41]},  '21-40',  {
            $cond: [ {$lt: ["$numberfield", 61]},  '41-60',  {
            $cond: [ {$lt: ["$numberfield", 81]},  '61-80',  {
            $cond: [ {$lt: ["$numberfield", 101]}, '81-100', '100+' ]
            }]}]}]}]
        }
    }},
    { $group: {
        _id: "$bucket",
        sum: { $sum: "$someotherfield" }
    }}
)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sử dụng Meteor tìm nạp hoặc tìm trong các chức năng của trình trợ giúp mẫu?

  2. Sự mơ hồ về $ geoNear trong truy vấn tổng hợp

  3. Tại sao gặp lỗi mongod dead nhưng subsys bị khóa và Không đủ dung lượng trống cho các tệp tạp chí trên Linux?

  4. Làm thế nào để tải hình ảnh lên thư mục bằng nodejs và lưu đường dẫn vào mongodb?

  5. MongoDB _id (ObjectId) có được tạo theo thứ tự tăng dần không?