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

Tìm kiếm mảng lồng nhau trong MongoDB bằng cách sử dụng $ map

Bạn có thể sử dụng truy vấn dưới đây.

Tôi đã thay đổi vài điều.

1.Không $elemMatch là bắt buộc đối với các tiêu chí đơn lẻ. Thay vào đó, hãy sử dụng ký hiệu dấu chấm.

2. Di chuyển $map của nhóm con bên trong $map của nhóm nhà điều hành.

[
  {"$match":{
    "empId":"19107",
    "address.country":"AUS",
    "group.primaryGroup.primary":"Y",
    "group.subGroup.primarySubGroup.primary":"Y"
  }},
  {"$project":{
    "empId":1,
    "mobile":1,
    "address":{"$filter":{"input":"$address","as":"d","cond":{"$eq":["$$d.country","AUS"]}}},
    "group":{
      "$map":{
        "input":"$group",
        "as":"v",
        "in":{
          "groupId":"$$v.groupId",
          "primaryGroup":{"$filter":{"input":"$$v.primaryGroup","as":"vp","cond":{"$eq":["$$vp.primary","Y"]}}},
          "subGroup":{
            "$map":{
              "input":"$$v.subGroup",
              "as":"n",
              "in":{
                "subGroupId":"$$n.subGroupId",
                "primarySubGroup":{"$filter":{"input":"$$n.primarySubGroup","as":"mp","cond":{"$eq":["$$mp.primary","Y"]}}}
              }
            }
          }
        }
      }
    }
  }}
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 3 cách chuyển đổi chuỗi thành ngày trong MongoDB

  2. Cập nhật hàng loạt tài liệu trong MongoDB

  3. Làm cách nào để tạo một ObjectId với mongoose?

  4. Cách cập nhật phần tử mảng cụ thể trong MongoDB

  5. Mongoid ::Phiên bản - làm thế nào để kiểm tra các phiên bản trước?