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

Tambahkan komentar

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