Latest web development tutorials

Dokumen MongoDB diperbarui

MongoDB menggunakanupdate () dan metode save ()untuk memperbarui koleksi dokumen. Mari kita lihat rinci pada aplikasi dan perbedaan antara dua fungsi.


update () metode

Metode update () digunakan untuk memperbarui dokumen yang ada. Sintaks adalah sebagai berikut:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

Parameter Deskripsi:

  • query: kriteria permintaan pembaruan, mirip dengan update sql query di mana bagian belakang batin.
  • update: pembaruan objek dan beberapa operator baru (seperti $, $ inc ...), dll, juga dapat dipahami sebagai diatur kembali dalam update sql query
  • upsert: opsional, yang berarti argumen ini adalah bahwa jika tidak ada update catatan, dimasukkan objNew, benar untuk menyisipkan, default adalah palsu, tidak dimasukkan.
  • multi-: Opsional, mongodb default adalah palsu, hanya untuk menemukan rekaman pertama untuk memperbarui, jika argumen ini benar, sesuai dengan kondisi mengeluarkan banyak catatan periksa semua pembaruan.
  • writeConcern: tingkat opsional eksepsi dilemparkan.

contoh

Kami masukkan berikut pengumpulan data col:

>db.col.insert({
    title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '本教程',
    url: 'http://www.w3big.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

Maka kita harus memperbarui judul dengan metode update () (judul):

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "本教程",
        "url" : "http://www.w3big.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

Anda dapat melihat judul (title) dari aslinya "MongoDB Tutorial" Update untuk "MongoDB."

Pernyataan di atas akan mengubah dokumen yang ditemukan dalam pertama, jika Anda ingin mengedit dokumen yang sama dan lebih, Anda perlu mengatur multi-parameter ke true.

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

save metode ()

save metode () dengan melewatkan dokumen untuk menggantikan dokumen yang ada. Sintaks adalah sebagai berikut:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

Parameter Deskripsi:

  • dokumen: data dokumen.
  • writeConcern: tingkat opsional eksepsi dilemparkan.

contoh

Contoh berikut kami mengganti _id sebagai data 56064f89ade2f21f36b03136 dokumen:

>db.col.save({
	"_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "w3big",
    "url" : "http://www.w3big.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})

Setelah penggantian ini berhasil, kita bisa () perintah untuk melihat data setelah penggantian oleh find

>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "w3big",
        "url" : "http://www.w3big.com",
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}
> 

contoh yang lebih

Hanya memperbarui catatan pertama:

db.col.update ({ "menghitung": {$ gt: 1}}, {$ mengatur: { "test2": "OK"}});

Memperbarui semua:

db.col.update ({ "menghitung": {$ gt: 3}}, {$ mengatur: { "test2": "OK"}}, false, true);

Tambahkan hanya yang pertama:

db.col.update ({ "menghitung": {$ gt: 4}}, {$ mengatur: { "test5": "OK"}}, true, false);

Tambahkan semua menambahkan:

db.col.update ({ "menghitung": {$ gt: 5}}, {$ mengatur: { "test5": "OK"}}, benar, true);

Memperbarui semua:

db.col.update ({ "menghitung": {$ gt: 15}}, {$ inc: { "count": 1}}, false, true);

Hanya memperbarui catatan pertama:

db.col.update ({ "menghitung": {$ gt: 10}}, {$ inc: { "count": 1}}, false, false);