Bagaimana cara memperbarui array di mongodb?

Jika kueri cocok dengan larik menggunakan operator negasi, seperti , , atau , maka Anda tidak dapat menggunakan operator posisi untuk memperbarui nilai dari larik ini

Namun, jika bagian kueri yang dinegasikan berada di dalam ekspresi, Anda dapat menggunakan operator posisi untuk memperbarui bidang ini

Contoh

Perbarui Nilai dalam Array

Pertimbangkan koleksi siswa dengan dokumen berikut.

{ "_id" : 1, "grades" : [ 80, 85, 90 ] }
{ "_id" : 2, "grades" : [ 88, 90, 92 ] }
{ "_id" : 3, "grades" : [ 85, 100, 90 ] }

Untuk memperbarui 80 menjadi 82 di grades array in the first document, use the positional $ operator if you do not know the position of the element in the array:

db.students.update(
   { _id: 1, grades: 80 },
   { $set: { "grades.$" : 82 } }
)
_

Ingat bahwa operator posisi $ bertindak sebagai placeholder untuk kecocokan pertama pembaruan.

Perbarui Dokumen dalam Array

Operator posisional $ memfasilitasi pembaruan ke larik yang berisi dokumen tersemat. Gunakan operator $ posisional untuk mengakses bidang dalam dokumen tersemat dengan di $ operator.

db.collection.update(
   { <query selector> },
   { <update operator>: { "array.$.field" : value } }
)

Perhatikan dokumen berikut dalam koleksi siswa yang nilainya element value is an array of embedded documents:

{
  _id: 4,
  grades: [
     { grade: 80, mean: 75, std: 8 },
     { grade: 85, mean: 90, std: 5 },
     { grade: 90, mean: 85, std: 3 }
  ]
}

Gunakan operator posisional $ untuk memperbarui nilai std field in the embedded document with the grade of 85:

db.students.update(
   { _id: 4, "grades.grade": 85 },
   { $set: { "grades.$.std" : 6 } }
)
_

Perbarui Dokumen Tersemat Menggunakan Beberapa Pencocokan Bidang

Operator $ dapat memperbarui elemen larik pertama yang cocok dengan beberapa kriteria kueri yang ditentukan oleh operator.

Perhatikan dokumen berikut dalam koleksi siswa yang nilainya field value is an array of embedded documents:

{
  _id: 4,
  grades: [
     { grade: 80, mean: 75, std: 8 },
     { grade: 85, mean: 90, std: 5 },
     { grade: 90, mean: 85, std: 3 }
  ]
}

Pada contoh di bawah, operator $ memperbarui nilai std field in the first embedded document that has grade field with a value less than or equal to 90 and a mean field with a value greater than 80:

db.students.update(
   {
     _id: 4,
     grades: { $elemMatch: { grade: { $lte: 90 }, mean: { $gt: 80 } } }
   },
   { $set: { "grades.$.std" : 6 } }
)
_

Operasi ini memperbarui dokumen tersemat pertama yang cocok dengan kriteria, yaitu dokumen tersemat kedua dalam larik

{
  _id: 4,
  grades: [
    { grade: 80, mean: 75, std: 8 },
    { grade: 85, mean: 90, std: 6 },
    { grade: 90, mean: 85, std: 3 }
  ]
}

参见

, ,

←   Operator Pembaruan Array $addToSet  →

© MongoDB, Inc 2008-2017. MongoDB, Mongo, dan logo daun adalah merek dagang terdaftar dari MongoDB, Inc

Bagaimana cara memperbarui semua elemen dalam array di MongoDB?

Untuk memperbarui semua elemen dalam array, lihat operator semua posisi $[] sebagai gantinya . Untuk memperbarui semua elemen yang cocok dengan syarat atau ketentuan filter larik, lihat operator posisi yang difilter sebagai gantinya $[

Bagaimana Anda memperbarui array?

Langkah 1. Temukan elemennya. Kami pertama-tama ingin menemukan indeks dalam larik objek, atau di mana objek berada dalam larik. .
Langkah 2. Buat salinan array status. .
Langkah 3. Perbarui satu nilai. .
Langkah 4. SetState

Bagaimana cara memperbarui data yang ada di MongoDB?

Shell MongoDB menyediakan metode berikut untuk memperbarui dokumen dalam koleksi. .
Untuk memperbarui satu dokumen, gunakan db. koleksi. perbaruiSatu()
Untuk memperbarui banyak dokumen, gunakan db. koleksi. updateBanyak()
Untuk mengganti dokumen, gunakan db. koleksi. gantiSatu()

Bagaimana cara memperbarui nilai array di luwak?

Mongoose menyediakan beberapa operator untuk memperbarui array seperti $addToSet, $push, $pop , dll. Pada artikel ini, kita akan membahas bagaimana menggunakan operator tersebut untuk melakukan operasi pembaruan pada array di nodejs. Kami akan menggunakan alat tukang pos untuk melakukan pengujian titik akhir. Anda dapat mengunduh alat tukang pos dari www. tukang pos. com.