MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB $min

MongoDB memiliki $min operator yang memungkinkan Anda memperbarui nilai bidang hanya jika nilai yang ditentukan lebih kecil dari nilai bidang saat ini.

Dengan kata lain, jika $min nilai kurang dari nilai saat ini dalam dokumen, $min nilai digunakan. Jika tidak, nilai dokumen tetap tidak berubah.

Contoh

Misalkan kita memiliki koleksi yang disebut golf dengan dokumen berikut:

{ "_id" : 1, "strokes" : 70 } 

Dan bayangkan kami memperbarui dokumen setelah setiap pertandingan golf dengan skor terbaru. Dalam hal ini, kami hanya ingin strokes bidang yang akan diperbarui jika skor terbaru kami lebih rendah dari skor kami sebelumnya.

Dalam hal ini kita bisa menggunakan $min operator untuk mencapai hasil tersebut.

Contoh:

db.golf.update( 
  { _id: 1 }, 
  { $min: { strokes: 64 } } 
)

Keluaran:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Pesan ini memberi tahu kami bahwa satu dokumen cocok dan telah diperbarui.

Yuk cek lagi koleksinya.

db.golf.find()

Hasil:

{ "_id" : 1, "strokes" : 64 }

Kita dapat melihat bahwa strokes bidang telah diperbarui dengan nilai baru. Ini karena 64 lebih rendah dari nilai sebelumnya 70.

Ketika Nilai Lebih Tinggi

Ketika nilai ditentukan dengan $min lebih tinggi dari nilai yang ada dalam dokumen, tidak ada yang diperbarui.

Contoh:

db.golf.update( 
  { _id: 1 }, 
  { $min: { strokes: 72 } } 
)

Keluaran:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })

Kami dapat melihat dari pesan bahwa tidak ada yang diperbarui.

Yuk cek lagi koleksinya.

db.golf.find()

Hasil:

{ "_id" : 1, "strokes" : 64 }

Kami dapat melihat bahwa nilainya tetap 64, meskipun kami mencoba memperbaruinya menjadi 72. Hal ini diharapkan, karena kami menggunakan $min .

Tanggal

Anda dapat menggunakan $min pada bidang tanggal.

Misalkan kita memiliki collection disebut spesies dengan dokumen berikut:

{ "_id" : 1, "firstDiscovered" : ISODate("2000-01-01T00:00:00Z") } 

Mari kita coba perbarui tanggal dengan tanggal yang lebih lambat dari tanggal saat ini di dokumen.

db.species.update( 
  { _id: 1 }, 
  { $min: { firstDiscovered: new Date("2001-01-01") } } 
)

Di sini, kami mencoba memperbarui tahun dari 2000 ke 2001 . Mengingat tanggal baru lebih lambat dari yang sudah ada, kami mendapatkan yang berikut:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })

Tidak ada yang diperbarui.

Yuk cek koleksinya:

db.species.find()

Hasil:

{ "_id" : 1, "firstDiscovered" : ISODate("2000-01-01T00:00:00Z") } 

Seperti yang diharapkan, nilai tanggal yang sama tetap ada.

Sekarang coba perbarui dengan tanggal yang lebih awal.

db.species.update( 
  { _id: 1 }, 
  { $min: { firstDiscovered: new Date("1999-01-01") } } 
)

Keluaran:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kita dapat melihat dari pesan bahwa dokumen telah diperbarui.

Mari kita periksa.

db.species.find()

Hasil:

{ "_id" : 1, "firstDiscovered" : ISODate("1999-01-01T00:00:00Z") } 

Tanggal diperbarui seperti yang diharapkan.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara memformat data dalam Model sebelum menyimpan di Mongoose (ExpressJS)

  2. MongoDB Ruby Driver 2.5.x Masalah Sensitivitas Huruf Besar dengan Nama Host pada Kumpulan Replika

  3. Kueri MongoDB dengan kriteria panjang

  4. Cara Mencadangkan Basis Data edX MongoDB Terbuka Anda

  5. Menautkan &Membuat Gabungan MongoDB Menggunakan SQL:Bagian 1