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

Bộ lọc tra cứu Mongo $ sử dụng truy vấn lồng nhau

$match bên trong $lookup đường ống không liên quan đến jobCollection các tài liệu. Nó chỉ lọc các tài liệu cho các tác vụ tasks thu thập. Vì vậy, bạn phải sử dụng thêm một $match giai đoạn sau $lookup để lọc ra ROOT (jobCollection ) tài liệu.

jobCollection.aggregate([
  { "$match": { "$text": { "$search": "1234" }}},
  { "$lookup": {
    "from": "task",
    "let": { "job_id": "$_id" },
    "pipeline": [
      { "$match": {
        "$expr": {
          "$and": [
            { "$eq": ["$job", "$$job_id"] },
            { "$eq": ["$status", "FAILED"] }
          ]
        }
      }}
    ],
    "as": "tasks"
  }},
  { "$match": { "tasks": { "$ne": [] }}},
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xuất một mảng trong csv từ MongoDB

  2. LỖI:quy trình con không thành công, đã thoát với lỗi số 51 MongoDB

  3. mongo + hành khách:cách phù hợp để kết nối lại với cơ sở dữ liệu từ bên trong đường ray? làm thế nào để đảm bảo hiệu suất mongo tối ưu?

  4. Làm cách nào để triển khai truy vấn bộ lọc tìm kiếm bằng mongodb?

  5. Trường không hiển thị trong tập hợp Mongoose