MongoDB update
Hujjatni yangilash
Yozuvni yoki hujjatni MongoDB da deyilganidek, foydalanish orqali yangilashingiz mumkin
updateOne() usuli.
updateOne() usulining birinchi parametri
qaysi hujjatni yangilash kerakligini belgilovchi so‘rov obyekti.
Eslatma: Agar so‘rovda bir nechta yozuv topilsa, faqat birinchisi hodisa yangilanadi.
Ikkinchi parametr hujjatning yangi qiymatlarini belgilovchi obyektdir.
Misol
Hujjatni "Valley 345" manzili bilan name="Mickey" ga yangilang va manzil = "Kanyon 123":
let MongoClient = require('mongodb').MongoClient;
let url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
let dbo = db.db("mydb");
let myquery = { address: "Valley 345" };
let 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();
});
});
Misolni ishga tushirish »
Yuqoridagi kodni "demo_update_one.js" nomli faylga saqlang va faylni ishga tushiring:
"demo_update_one.js" ni ishga tushiring
C:\Users\Your Name>node demo_update_one.js
Bu sizga bu natijani beradi:
1 document updated
Faqat ma’lum maydonlarni yangilang
$set operatoridan foydalanilganda, faqat
belgilangan maydonlar yangilanadi:
Misol
Manzilni "Valley 345" dan "Canyon 123" ga yangilang:
...
let myquery = { address: "Valley 345" };
let newvalues
= { $set: { address: "Canyon 123" } };
dbo.collection("customers").updateOne(myquery,
newvalues, function(err, res) {
...
Misolni ishga tushirish »
Ko‘p hujjatlarni yangilang
So‘rov mezonlariga javob beradigan barcha hujjatlarni yangilash uchun foydalaning
updateMany() usuli.
Misol
Nomi "S" harfi bilan boshlangan barcha hujjatlarni yangilang:
let MongoClient = require('mongodb').MongoClient;
let url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
let dbo = db.db("mydb");
let myquery = { address: /^S/ };
let 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();
});
});
Misolni ishga tushirish »
Yuqoridagi kodni "demo_update_many.js" deb nomlangan faylga saqlang va faylni ishga tushiring:
"demo_update_many.js" ni ishga tushiring
C:\Users\Your Name>node demo_update_many.js
Bu sizga bu natijani beradi:
2 document(s) updated
Natija obyekti
updateOne() va
updateMany() usullari qandayligi haqida ma’lumotni o‘z ichiga olgan obyektni qaytaradi
ijro ma’lumotlar bazasiga ta’sir qildi.
Ma’lumotlarning ko‘p qismini tushunish muhim emas, lekin uning ichida bitta obyekt obyekt "natija" deb nomlanadi, bu bizga ijroning yaxshi o‘tganligini va qandayligini aytadi ko‘plab hujjatlar ta’sir ko‘rsatdi.
Natija obyekti quyidagicha ko‘rinadi:
{ n: 1, nModified: 2, ok: 1 }
Yangilangan hujjatlar sonini qaytarish uchun ushbu obyektdan foydalanishingiz mumkin:
Misol
Yangilangan hujjatlar sonini qaytaring:
console.log(res.result.nModified);
Qaysi natijani beradi:
2
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
