Node.js MongoDB Güncellemesi


Belgeyi Güncelle

Yöntemi kullanarak bir kaydı veya belgeyi MongoDB'de çağrıldığı gibi güncelleyebilirsiniz updateOne().

Yöntemin ilk parametresi, updateOne()hangi belgenin güncelleneceğini tanımlayan bir sorgu nesnesidir.

Not: Sorgu birden fazla kayıt bulursa, yalnızca ilk geçtiği yer güncellenir.

İkinci parametre, belgenin yeni değerlerini tanımlayan bir nesnedir.

Örnek

"Valley 345" adresli belgeyi name="Mickey" ve address="Canyon 123" olarak güncelleyin:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: {name: "Mickey", address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log("1 document updated");
    db.close();
  });
});

Yukarıdaki kodu "demo_update_one.js" adlı bir dosyaya kaydedin ve dosyayı çalıştırın:

"demo_update_one.js"yi çalıştırın

C:\Users\Your Name>node demo_update_one.js

Hangisi size bu sonucu verecektir:

1 document updated


Yalnızca Belirli Alanları Güncelle

Operatör kullanılırken $setyalnızca belirtilen alanlar güncellenir:

Örnek

"Valley 345" olan adresi "Canyon 123" olarak güncelleyin:

...
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: { address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
...

Birçok Belgeyi Güncelleyin

Sorgu kriterlerini karşılayan tüm belgeleri güncellemek için updateMany()yöntemi kullanın.

Örnek

Adın "S" harfiyle başladığı tüm belgeleri güncelleyin:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: /^S/ };
  var newvalues = {$set: {name: "Minnie"} };
  dbo.collection("customers").updateMany(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log(res.result.nModified + " document(s) updated");
    db.close();
  });
});

Yukarıdaki kodu "demo_update_many.js" adlı bir dosyaya kaydedin ve dosyayı çalıştırın:

"demo_update_many.js"yi çalıştırın

C:\Users\Your Name>node demo_update_many.js

Hangisi size bu sonucu verecektir:

2 document(s) updated

Sonuç Nesnesi

ve yöntemleri updateOne(), updateMany()yürütmenin veritabanını nasıl etkilediği hakkında bilgi içeren bir nesne döndürür.

Bilgilerin çoğunun anlaşılması önemli değildir, ancak nesnenin içindeki bir nesneye "sonuç" adı verilir ve bu bize yürütmenin yolunda gidip gitmediğini ve kaç belgenin etkilendiğini söyler.

Sonuç nesnesi şöyle görünür:

{ n: 1, nModified: 2, ok: 1 }

Güncellenen belgelerin sayısını döndürmek için bu nesneyi kullanabilirsiniz:

Örnek

Güncellenen belgelerin sayısını döndür:

console.log(res.result.nModified);

Bu sonucu üretecek olan:

2