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 $set
yalnı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