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