Mongodb: cara memeriksa apakah bidang ada
Anda dapat menggunakan metode berikut untuk memeriksa apakah ada bidang dalam koleksi di MongoDB:
Metode 1: Periksa apakah bidang tersebut ada
db.myCollection.find({ " myField ": { $exists : true } })
Metode ini memeriksa apakah “myField” ada dalam koleksi bernama myCollection . Jika demikian, maka akan mengembalikan semua dokumen yang berisi nama field. Jika tidak, ia tidak akan mengembalikan apa pun.
Metode 2: Periksa apakah bidang yang disematkan ada
db.myCollection.find({ " myField.embeddedField ": { $exists : true } })
Metode ini memeriksa apakah nama bidang “embeddedField” di bidang “myField” ada dalam koleksi bernama myCollection . Jika demikian, maka akan mengembalikan semua dokumen yang berisi nama field. Jika tidak, ia tidak akan mengembalikan apa pun.
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan tim pengumpulan dengan dokumen berikut:
db.teams.insertOne({team: "Mavs", class: {conf: "Western", div: "A"}, points: 31 }) db.teams.insertOne({team: "Spurs", class: {conf: "Western", div: "A"}, points: 22 }) db.teams.insertOne({team: "Jazz", class: {conf: "Western", div: "B"}, points: 19 }) db.teams.insertOne({team: "Celtics", class: {conf: "Eastern", div: "C"}, points: 26 })
Contoh 1: Periksa apakah kolom ada
Kode berikut memperlihatkan cara memeriksa apakah nama bidang “poin” ada di koleksi tim :
db.teams.find({ " points ": { $exists : true } })
Kueri ini mengembalikan dokumen berikut:
{ _id: ObjectId("6203d10c1e95a9885e1e7637"), team: 'Mavs', class: { conf: 'Western', div: 'A' }, points: 31 } { _id: ObjectId("6203d10c1e95a9885e1e7638"), team: 'Spurs', class: { conf: 'Western', div: 'A' }, points: 22 } { _id: ObjectId("6203d10c1e95a9885e1e7639"), team: 'Jazz', class: { conf: 'Western', div: 'B' }, points: 19 } { _id: ObjectId("6203d10c1e95a9885e1e763a"), team: 'Celtics', class: { conf: 'Eastern', div: 'C' }, points: 26 }
Karena nama bidang “titik” ada, setiap dokumen yang berisi bidang “titik” dikembalikan.
Misalkan kita memeriksa apakah nama bidang “mencuri” ada di koleksi tim :
db.teams.find({ " steals ": { $exists : true } })
Karena bidang ini tidak ada, tidak ada keluaran yang dikembalikan.
Contoh 2: Periksa apakah bidang yang disematkan ada
Kode berikut memperlihatkan cara memeriksa apakah nama bidang bawaan “div” ada di bidang “kelas” koleksi tim :
db.teams.find({ " class.div ": { $exists : true } })
Kueri ini mengembalikan dokumen berikut:
{ _id: ObjectId("6203d10c1e95a9885e1e7637"), team: 'Mavs', class: { conf: 'Western', div: 'A' }, points: 31 } { _id: ObjectId("6203d10c1e95a9885e1e7638"), team: 'Spurs', class: { conf: 'Western', div: 'A' }, points: 22 } { _id: ObjectId("6203d10c1e95a9885e1e7639"), team: 'Jazz', class: { conf: 'Western', div: 'B' }, points: 19 } { _id: ObjectId("6203d10c1e95a9885e1e763a"), team: 'Celtics', class: { conf: 'Eastern', div: 'C' }, points: 26 }
Karena nama bidang yang disematkan “div” ada di bidang “kelas”, setiap dokumen yang berisi bidang “div” yang tertanam akan dikembalikan.
Misalkan kita memeriksa apakah nama bidang bawaan “divisi” ada di bidang “kelas” dalam koleksi tim :
db.teams.find({ " class.division ": { $exists : true } })
Karena bidang bawaan ini tidak ada, tidak ada keluaran yang dikembalikan.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $exists di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara membuat daftar semua nama bidang
MongoDB: Cara mengganti nama bidang
MongoDB: Cara menambahkan bidang baru
MongoDB: Cara menghapus bidang