Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

อัปเดตหลายเอกสารพร้อมกันด้วยพารามิเตอร์ multi ใน MongoDB

ตั้งค่า multi: true ใน update() เพื่ออัปเดต ทุก เอกสารที่ตรงเงื่อนไข (Default multi: false อัปเดตแค่ตัวแรก)

ตัวอย่างข้อมูลทดสอบ

> db.demo390.insertOne({"FirstName":"Chris"});
> db.demo390.insertOne({"FirstName":"David"});
> db.demo390.insertOne({"FirstName":"Bob"});
> db.demo390.insertOne({"FirstName":"Chris"});

แสดงข้อมูลก่อน (มี Chris 2 รายการ)

> db.demo390.find();
{
    "_id" : ObjectId("5e5d1f3a22064be7ab44e7fa"), "FirstName" : "Chris"
}
{
    "_id" : ObjectId("5e5d1f3e22064be7ab44e7fb"), "FirstName" : "David"
}
{
    "_id" : ObjectId("5e5d1f4122064be7ab44e7fc"), "FirstName" : "Bob"
}
{
    "_id" : ObjectId("5e5d1f4422064be7ab44e7fd"), "FirstName" : "Chris"
}

คำสั่งอัปเดต Chris -> John ทุกตัว (multi: true)

> db.demo390.update({FirstName:"Chris"},{$set:{"FirstName":"John"}},{multi:true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

ผลลัพธ์ (Chris ทั้ง 2 กลายเป็น John)

> db.demo390.find();
{
    "_id" : ObjectId("5e5d1f3a22064be7ab44e7fa"), "FirstName" : "John"
}
{
    "_id" : ObjectId("5e5d1f3e22064be7ab44e7fb"), "FirstName" : "David"
}
{
    "_id" : ObjectId("5e5d1f4122064be7ab44e7fc"), "FirstName" : "Bob"
}
{
    "_id" : ObjectId("5e5d1f4422064be7ab44e7fd"), "FirstName" : "John"
}

หมายเหตุ: MongoDB 3.2+ แนะนำใช้ updateMany() แทน update({}, ..., {multi:true}) เพื่อความชัดเจน