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

Bộ lọc Mongo mảng mảng mảng

Bạn có thể thử tổng hợp bên dưới

Về cơ bản, bạn cần lặp qua từng mảng bằng cách sử dụng $map tổng hợp và cuối cùng sử dụng $filter với cái cuối cùng.

db.collection.aggregate([
  { "$project": {
    "array1": {
      "$map": {
        "input": "$array1",
        "as": "a1",
        "in": {
          "array2": {
            "$map": {
              "input": "$$a1.array2",
              "as": "a2",
              "in": {
                "array3": {
                  "$filter": {
                    "input": "$$a2.array3",
                    "as": "a3",
                    "cond": { "$lte": ["$$a3.sampleId", 2] }
                  }
                }
              }
            }
          }
        }
      }
    }
  }}
])

Đầu ra

[
  {
    "array1": [
      {
        "array2": [
          {
            "array3": [
              {
                "sampleId": 1
              },
              {
                "sampleId": 2
              }
            ]
          },
          {
            "array3": []
          }
        ]
      },
      {
        "array2": [
          {
            "array3": [
              {
                "sampleId": 1
              }
            ]
          }
        ]
      }
    ]
  }
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. thực hiện toán học trong truy vấn tìm kiếm mongodb

  2. Khởi động PHP:Không thể tải thư viện động 'php_mongodb.dll'

  3. có bất kỳ ORM mongodb nào cho phép bạn tạo các trường bí danh không?

  4. Phương thức hoạt động trong quá trình phát triển nhưng không hoạt động trong sản xuất Rails MongoDB

  5. mongorestore không có ngoại lệ:lỗi cú pháp