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

เพิ่ม Field ใหม่ให้ทุก Document ใน MongoDB Collection ($set)

ใช้ Operator $set ร่วม update() แบบ Multi-document เพื่อเพิ่ม Field ใหม่ให้ทุก Document ใน Collection

ไวยากรณ์


db.yourCollectionName.update(
    {},
    {$set: {"yourFieldName": yourValue}},
    false, true   // upsert: false, multi: true
);

สร้างข้อมูลตัวอย่าง (4 Documents)


> db.addNewFieldToEveryDocument.insertOne({"StudentName":"John","StudentAddress":"US"});
>> db.addNewFieldToEveryDocument.insertOne({"StudentName":"David","StudentAddress":"UK"});
>> db.addNewFieldToEveryDocument.insertOne({"StudentName":"Carol","StudentAddress":"UK"});
> db.addNewFieldToEveryDocument.insertOne({"StudentName":"Bob","StudentAddress":"US"});

แสดงเอกสารก่อนเพิ่ม Field


> db.addNewFieldToEveryDocument.find().pretty();

เพิ่ม Field "StudentAge": 24 ให้ทุก Document


> db.addNewFieldToEveryDocument.update(
    {},
    {$set: {"StudentAge": 24}},
    false, true
);
WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 4 })

ตรวจสอบหลังเพิ่ม Field


> db.addNewFieldToEveryDocument.find().pretty();

{ "StudentName" : "John", "StudentAddress" : "US", "StudentAge" : 24 }
{ "StudentName" : "David", "StudentAddress" : "UK", "StudentAge" : 24 }
{ "StudentName" : "Carol", "StudentAddress" : "UK", "StudentAge" : 24 }
{ "StudentName" : "Bob", "StudentAddress" : "US", "StudentAge" : 24 }

Field StudentAge: 24 ถูกเพิ่มเข้าไปในทั้ง 4 Documents สำเร็จ

หมายเหตุ: MongoDB เวอร์ชันใหม่แนะนำใช้ updateMany({}, {$set: {"field": value}}) แทน update({}, ..., false, true)