Mongodb: bagaimana cara memasukkan jika tidak ada
Anda dapat menggunakan sintaks berikut untuk menyisipkan dokumen ke dalam koleksi di MongoDB hanya jika dokumen tersebut belum ada:
db.teams.update( { team: 'Hornets' }, { $setOnInsert : {team: 'Hornets', points: '58', rebounds: '20'} }, {upsert: true } )
Kode khusus ini memeriksa apakah bidang “tim” memiliki nilai “Hornet”. Jika nilai ini ada, maka tidak akan terjadi apa-apa.
Namun, jika nilai ini tidak ada maka akan memasukkan dokumen dengan nilai spesifik untuk bidang “tim”, “poin”, dan “rebound”.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Sisipkan jika belum ada di MongoDB
Katakanlah kita memiliki koleksi yang disebut tim dengan dokumen berikut:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12}) db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})
Katakanlah kita menggunakan kode berikut untuk mencoba memasukkan dokumen untuk tim “Mavs”:
db.teams.update( { team: 'Mavs' }, { $setOnInsert : {team: 'Mavs', points: '58', rebounds: '20'} }, {upsert: true } )
Bidang “tim” sudah berisi informasi untuk “Mavs”, tidak ada dokumen yang akan diubah.
Namun, katakanlah kita menggunakan kode berikut untuk menyisipkan dokumen untuk tim “Hornets”:
db.teams.update( { team: 'Hornets' }, { $setOnInsert : {team: 'Hornets', points: '58', rebounds: '20'} }, {upsert: true } )
Karena bidang “tim” belum berisi informasi untuk “Hornet”, dokumen baru akan ditambahkan ke koleksi dengan nilai yang kami tentukan untuk setiap bidang.
Seperti inilah tampilan koleksi yang diperbarui:
{ _id: ObjectId("6203df361e95a9885e1e764a"), team: 'Mavs', points: 30, rebounds: 8 } { _id: ObjectId("6203df361e95a9885e1e764b"), team: 'Spurs', points: 35, rebounds: 12 } { _id: ObjectId("6203df361e95a9885e1e764c"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("6203df361e95a9885e1e764d"), team: 'Warriors', points: 25, rebounds: 5 } { _id: ObjectId("6203df361e95a9885e1e764e"), team: 'Cavs', points: 23, rebounds: 9 } { _id: ObjectId("6203e17de42bfba74fc73325"), team: 'Hornets', dots: '58', rebounds: '20' }
Perhatikan bahwa dokumen baru telah ditambahkan untuk tim “Hornets”.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $upsert di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara menambahkan bidang baru
MongoDB: Cara menghapus bidang
MongoDB: Cara menghitung nilai berbeda dalam suatu bidang