Apakah db.collection.updateOne() dalam MongoDB?

Apakah Db Collection Updateone Dalam Mongodb



MongoDB ialah pangkalan data bukan perhubungan yang berkuasa yang boleh menyimpan berbilang dokumen. Kadangkala, pengguna mungkin perlu mengemas kini satu dokumen yang memenuhi kriteria tertentu. Dalam keadaan ini, mereka boleh menggunakan ' db.collection.updateOne() ” kaedah, yang mengemas kini dan mengubah suai dokumen pertama yang memenuhi kriteria pemilihan dan mengubah suainya.

Apakah Kaedah 'db.collection.updateOne()' dalam MongoDB?

' db.collection.updateOne() ” kaedah mengemas kini satu dokumen yang sepadan dengan kriteria yang ditetapkan. Jika lebih daripada satu dokumen sepadan dengan kriteria hanya dokumen pertama akan diubah suai. Ia boleh digunakan dengan Operator Kemas Kini, seperti ' $set ”, “ $inc ” dan banyak lagi .

Bagaimana untuk Menggunakan Kaedah 'db.collection.updateOne()' dalam MongoDB?

' db.collection.updateOne() ” kaedah boleh digunakan untuk mengemas kini satu medan serta berbilang medan bagi satu dokumen yang sepadan dengan kriteria pemilihan. Selain itu, kaedah ini juga boleh menambah medan pada dokumen dan boleh digunakan dengan pengendali kemas kini. Sintaks ' db.collection.updateOne() ” kaedah disediakan di bawah:







Sintaks Asas



db.collection.updateOne ( { penapis_kriteria } , { kemas kini } , { pilihan } )

Di sini dalam sintaks di atas:



  • Kaedah ini akan mengemas kini dokumen pertama yang memenuhi kriteria pemilihan
  • ' penapis_kriteria ” mentakrifkan kriteria untuk kemas kini
  • ' kemas kini ” mengandungi medan yang akan diubah suai dalam dokumen
  • ' pilihan ” argument ialah hujah pilihan yang mengubah cara kerja kaedah ini, seperti “ upsert ” dan “ petunjuk

Untuk siaran ini, kami akan menggunakan ' Linuxhint_Col2 'dokumen pengumpulan untuk menunjukkan kerja' db.collection.updateOne() ” kaedah. Untuk melihat dokumen yang disimpan dalam koleksi ini jalankan arahan yang disediakan:





db.Linuxhint_Col2.find ( )

Pengeluaran

Output mendapatkan semula semua dokumen yang disimpan dalam ' Linuxhint_Col2 ' koleksi.



Contoh 1: Kemas kini Medan Tunggal
Untuk mengemas kini medan tunggal dalam dokumen, tentukan kriteria pemilihannya dan kemas kini kriteria. Kriteria pengemaskinian boleh ditakrifkan menggunakan pengendali kemas kini. Marilah kami menjalankan pertanyaan untuk mengemas kini ' Yuran_Pemodelan medan ” ke “ 18000 ' Dimanakah ' Nama terakhir 'objek sama dengan' Depp ” dalam dokumen:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.Last_Name' : 'Depp' } , { $set : { Yuran_Pemodelan: 18000 } } )

Pengeluaran

Output mengembalikan mesej kejayaan.

Untuk mengesahkan perubahan yang dibuat, dapatkan semula dokumen yang terjejas menggunakan ini ' cari() ” perintah:

db.Linuxhint_Col2.find ( { 'Model_Name.Last_Name' : 'Depp' } )

Pengeluaran

Output mengesahkan bahawa dokumen telah berjaya dikemas kini.

Contoh 2: Tambah Medan Baharu Menggunakan Kaedah 'db.collection.updateOne()'.
' db.collection.updateOne() ' kaedah menambah medan baharu menggunakan ' $set ” operator dalam dokumen jika ia belum wujud. Sebagai ' Pengalaman medan ' tidak wujud untuk dokumen di mana ' Yuran_Pemodelan ” adalah kurang daripada “ 9000 ”.

Mari kita tambah medan baharu ' Pengalaman 'dengan nilai' pemula ' dalam dokumen di mana ' Yuran_Pemodelan ” adalah kurang daripada “ 9000 ” menggunakan pertanyaan ini:

db.Linuxhint_Col2.updateOne ( { 'Yuran_Pemodelan' : { $lt : 9000 } } , { $set : { 'Pengalaman' : 'Pemula' } } )

Pengeluaran

Output mengembalikan mesej yang menunjukkan bahawa satu dokumen sepadan dengan kriteria pemilihan dan berjaya diubah suai.

Biar kami mengesahkannya dengan mendapatkan semula semua dokumen yang tersedia dalam koleksi ' Linuxhint_Col2 ”:

db.Linuxhint_Col2.find ( )

Pengeluaran

Output menunjukkan bahawa satu dokumen yang memenuhi syarat diubah suai, dan medan baharu berjaya dimasukkan.

Contoh 3: Kemas Kini Berbilang Medan Dokumen Menggunakan Kaedah 'db.collection.updateOne()'
Pengguna boleh mengubah suai berbilang medan dalam satu dokumen walaupun. Di sini pertanyaan yang diberikan di bawah ini akan mengubah suai nama keluarga dan umur untuk dokumen di mana ' Nama pertama 'sama dengan' Nuh “:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Noah' } , { $set : { 'Model_Name.Last_Name' : 'Doe' , 'Model_Age' : 23 } } )

Pengeluaran

Pertanyaan telah dilaksanakan tanpa sebarang ralat.

Untuk mengesahkan perubahan, gunakan kaedah 'cari()' untuk mendapatkan semula dokumen di mana ' Nama pertama 'sama dengan' Nuh :

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Noah' } )

Pengeluaran

Output berjaya mengembalikan dokumen yang diubah suai.

Contoh 4: Gunakan Kaedah “db.collection.updateOne()” dengan Operator Kemas Kini
Seperti dalam contoh sebelumnya, kami menggunakan ' $set ” pengendali kemas kini untuk mengubah suai nilai dalam “ db.collection.updateOne() ” kaedah. Mari kita cuba menggunakan pengendali kemas kini lain ' $inc ” yang menambah medan dengan jumlah yang ditentukan.

Di sini dalam pertanyaan yang disediakan di bawah, kaedah mencari dokumen di mana ' Nama pertama 'sama dengan' Kate ” dan menambah “ 1000 ' di dalam ' Yuran_Pemodelan ” nilai medan:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Yuran_Pemodelan: 1000 } } )

Pengeluaran

Output mengembalikan mesej kejayaan.

Untuk melihat perubahan, gunakan ' cari() ” kaedah untuk mendapatkan semula dokumen yang terjejas:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } )

Pengeluaran

Output menggambarkan nilai yang diubah suai ' Yuran_Pemodelan ”.

Contoh 5: Tambah Dokumen Baharu jika Ia Tidak Wujud Sudah Menggunakan Argumen 'upsert'.
Argumen pilihan boleh digunakan untuk mengubah tingkah laku kaedah ini. Satu pilihan sedemikian ialah ' upsert ” yang menambah dokumen baharu jika tiada dokumen sedia ada memenuhi kriteria pemilihan yang ditakrifkan dalam pertanyaan.

Marilah kita cuba menambah dokumen baharu dengan menentukan kriteria pemilihan yang tidak memenuhi mana-mana dokumen sedia ada. Selepas itu, tetapkan beberapa medan untuknya dan tambahkan pilihan ' upsert ' sebagai 'benar' seperti yang ditunjukkan dalam arahan yang disediakan di bawah:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'David' } , { $set : { Yuran_Pemodelan: 10000 ,  Model_Age: 23 , 'Model_Name.Last_Name' : 'Smith' } } , { upsert: benar } )

Pengeluaran

Output menunjukkan mesej yang diakui sebagai benar.

Akhir sekali, sahkan pengubahsuaiannya dengan menjalankan arahan ini:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'David' } )

Pengeluaran

Output menggambarkan bahawa dokumen baharu telah berjaya ditambahkan.

Kesimpulan

' db.collection.updateOne() ” kaedah dalam MongoDB digunakan untuk mengemas kini dokumen pertama yang memenuhi kriteria pemilihan. Ia boleh mengubah suai satu dan juga beberapa medan dalam dokumen dengan menggunakan pengendali kemas kini, seperti ' $set ” dan “ $inc ”. Selain itu, kaedah ini juga menerima hujah pilihan untuk mengubah tingkah laku kaedah, seperti “ upsert ” yang menambah dokumen baharu sekiranya kriteria pemilihan tidak sepadan dengan mana-mana dokumen sedia ada. Catatan ini telah membincangkan penggunaan ' db.collection.updateOne() ” kaedah dalam MongoDB.