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

Khớp với một trường mảng có chứa bất kỳ kết hợp nào của mảng được cung cấp trong MongoDB

Bạn có thể thực hiện việc này bằng cách kết hợp nhiều toán tử:

db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})

$elemMatch với $nin đang tìm tài liệu trong đó một thẻ tags phần tử không phải là 'Rad' cũng không phải là 'Cool', và sau đó là phần tử mẹ $not đảo ngược so khớp để trả về tất cả các tài liệu không khớp với bất kỳ phần tử nào.

Tuy nhiên, điều này cũng sẽ trả về các tài liệu trong đó thẻ tags bị thiếu hoặc không có phần tử. Để loại trừ những người đó, bạn cần thêm một bộ định lượng đảm bảo các thẻ tags có ít nhất một phần tử:

db.test.find({
    tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
    'tags.0': {$exists: true}
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kiểm tra xem một trường có chứa một chuỗi hay không

  2. Mongo:đếm số lần xuất hiện từ trong một bộ tài liệu

  3. PII Masking trong MongoDB và các DB NoSQL khác thông qua…

  4. Đánh giá về các tùy chọn sao lưu MongoDB

  5. Cách sao lưu và khôi phục ClusterControl