Mongodb: cara menggunakan kueri “tidak dalam”.


Anda dapat menggunakan sintaks berikut untuk menemukan semua dokumen yang nilai bidang tertentu tidak ada dalam daftar nilai tertentu:

 db.collection.find({field1: { $nin : [" value1 ", " value2 ", " value3 "]}}) 

Kueri khusus ini mencari semua dokumen yang nilai bidang 1 tidak sama dengan nilai1, nilai2, atau nilai3.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh 1: Kueri untuk “NOT IN” dengan sebuah nilai

Anggaplah kita memiliki tim pengumpulan dengan dokumen-dokumen berikut:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen yang kolom “tim” tidak sama dengan nilai “Rockets”:

 db.teams.find({team: { $nin : [" Rockets "]}}) 

Kueri ini mengembalikan dokumen berikut:

 { _id: ObjectId("619527e467d6742f66749b72"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

{ _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

Perhatikan bahwa satu-satunya dokumen yang dikembalikan adalah dokumen yang kolom “tim” tidak sama dengan “Roket”.

Contoh 2: Kueri untuk “NON IN” dengan daftar nilai

Anggaplah kita memiliki tim pengumpulan dengan dokumen-dokumen berikut:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen yang kolom “tim” tidak sama dengan nilai “Rockets” atau “Cavs”:

 db.teams.find({team: { $nin : [" Rockets ", " Cavs "]}}) 

Kueri ini mengembalikan dokumen berikut:

 { _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

Perhatikan bahwa satu-satunya dokumen yang dikembalikan adalah dokumen yang kolom “tim” tidak sama dengan “Rockets” atau “Cavs”.

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $nin di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:

MongoDB: Cara melakukan kueri dengan ekspresi reguler “Suka”.
MongoDB: Cara memeriksa apakah bidang berisi string
MongoDB: Cara menambahkan bidang baru ke koleksi
MongoDB: Cara menghapus bidang dari setiap dokumen

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *