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

Cách chuyển truy vấn bên trong trong mongodb từ javascript

TLDR;

Điều tương đương mongoose sẽ là chạy truy vấn lồng nhau trước và chuyển kết quả vào tập hợp.

groups.distinct("p", {"enable": true}).exec().then(matchingGroups => {
    return users.aggregate([
        {$match: {"id": {$in: ["0", "1", "2"]}, p: {$in: matchingGroups}}},
        {$group:{_id:"$v", number:{$sum:1 }}}
    ]).exec();
}).then(aggregationResult => {
    console.log(aggregationResult);
});

Giải thích

Khi thực thi tập lệnh sau trong mongo shell, điều xảy ra là truy vấn bên trong (phân biệt) được gửi trước, và sau đó kết quả được chuyển đến truy vấn bên ngoài (tổng hợp), sau đó sẽ được gửi để thực thi. Điều này có thể được xác nhận bằng cách chụp một dấu vết gói tin. Trong các hình ảnh đính kèm, chúng ta có thể thấy gửi truy vấn đầu tiên (gói 9) phản hồi đã nhận (gói 10 và 11) và gửi truy vấn tổng hợp (gói 12 và 13).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB db.collection.count ()

  2. cập nhật mongoDB Nhiều có upert true và $ in trong điều kiện where

  3. Truy vấn tùy chỉnh mùa xuân có thể phân trang

  4. Nhiều tham chiếu lược đồ trong một mảng giản đồ - mongoose

  5. Mongoose Model.find không phải là một hàm?