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

So sánh hai mảng đối tượng và kiểm tra xem chúng có các phần tử chung không

3.6 Cập nhật:

Sử dụng $match với $expr . $expr cho phép sử dụng các biểu thức tổng hợp bên trong $match sân khấu.

db.collection.aggregate([
  {"$match":{
    "$expr":{
      "$eq":[
        {"$size":{"$setIntersection":["$FirstArray.Name","$SecondArray.Name"]}},
        0
      ]
    }
  }},
  {"$project":{"_id":1}}
])

Phiên bản cũ:

Bạn có thể thử $redact với $setIntersection cho truy vấn của bạn.

$setIntersection để so sánh FirstArray s Name s với SecondArray s Name s và trả về mảng tài liệu tên thông thường theo sau là $size$redact và so sánh kết quả với 0 để giữ và xóa tài liệu khác.

db.collection.aggregate(
  [{
    $redact: {
      $cond: {
        if: {
          $eq: [{
            $size: {
              $setIntersection: ["$FirstArray.Name", "$SecondArray.Name"]
            }
          }, 0]
        },
        then: "$$KEEP",
        else: "$$PRUNE"
      }
    }
  }, {
    $project: {
      _id: 1
    }
  }]
)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Group sử dụng trình điều khiển Ruby

  2. sao băng $ pull xóa khỏi mảng

  3. Phương pháp tiếp cận được khuyến nghị đối với cơ sở dữ liệu nhiều người thuê trong MongoDB là gì?

  4. Giải pháp kho dữ liệu để tìm kiếm thẻ

  5. MongoDB php $ in và $ regex