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

Mongodb Đang cố gắng lấy các trường đã chọn để trả về từ tổng hợp

Nói rộng ra ở đây, $project dựa vào "đường dẫn tuyệt đối" đến thuộc tính trường trong tài liệu ở phía "bên phải". Các phím tắt như 1 chỉ dành cho nơi phần tử đó thực sự là cấp cao nhất của tài liệu.

Ngoài ra, bạn cần có khả năng giữ lại các trường khi bạn $group , vì vậy đây là nơi bạn sử dụng các toán tử nhóm khác nhau như $first $addToSet hoặc $push để giữ thông tin bạn đang chạy từ mảng bên trong. Và bạn phải $unwind hai lần ở đây vì bạn đang kết hợp "loại" trên các tài liệu và bạn không muốn chỉ có $first trong trường hợp này.

OrderModel.aggregate([
    { "$unwind": "$products" },
    { "$unwind": "$products.types" },
    { "$group": {
        "_id": "$products.name",
        "active": { "$first": "$products.active" },
        "types": { "$addToSet": "$products.types" },
        "quantity": { "$sum": 1 }
    }},
    { "$project": {
        "_id": 0,
        "name": "$_id",
        "active": 1,
        "types": 1,
        "quantity": 1
    }}
],function(err,results) {

});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chạy truy vấn mongodb gốc với trình điều khiển java mongodb

  2. giảm giá trị trong bộ sưu tập cho đến 0

  3. Thêm nhiều giá trị bằng toán tử $ addToSet Mongo

  4. thêm người dùng vào mongodb qua python

  5. Mối quan hệ MongoDB cho các đối tượng