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

MongoDB Tìm các giá trị được truyền vào không khớp

Nếu các tài liệu đầu vào là:

{ _id: 1 },
{ _id: 2 },
{ _id: 5 },
{ _id: 10 }

Và mảng cần so khớp là:

var INPUT_ARRAY = [ 1, 7, 15 ]

Tổng hợp sau:

db.test.aggregate( [
{
  $match: {
    _id: {
        $in: INPUT_ARRAY
    }
  }
},
{ 
  $group: { 
      _id: null, 
      matches: { $push: "$_id" } 
  } 
},
{ 
  $project: {
      ids_not_exist: { $setDifference: [ INPUT_ARRAY, "$matches" ] },
      _id: 0
  } 
}
] )

Lợi nhuận:

{ "ids_not_exist" : [ 7, 15 ] }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhận thông báo cho các tài liệu đã thay đổi trong mongodb

  2. Làm cách nào để tôi có thể sử dụng MongoDB để tìm tất cả các tài liệu có một trường, bất kể giá trị của trường đó là bao nhiêu?

  3. Cuộc chiến của các cơ sở dữ liệu NoSQL - So sánh MongoDB và Oracle NoSQL

  4. Mẹo lưu trữ bản sao lưu MongoDB trên đám mây

  5. Giải quyết các loại tài liệu phụ với Spring Data và MongoDB