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