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

การเพิ่มฟิลด์ (Column) ใหม่ใน MongoDB Collection

เพิ่มฟิลด์ใหม่ในทุกเอกสารของ Collection ด้วย update() และ $set

บทความนี้สาธิตวิธีการเพิ่มฟิลด์ (Column) ใหม่ให้กับทุกเอกสารใน Collection ที่มีอยู่แล้ว โดยใช้ update() พร้อม $set และตัวเลือก multi: true (ผ่านพารามิเตอร์ที่ 3 และ 4)

ไวยากรณ์ (Syntax)

db.getCollection(yourCollectionName).update({}, {$set: {"yourColumnName": "yourValue"}}, false, true);

พารามิเตอร์: Query={}, Update={$set:{...}}, Upsert=false, Multi=true

ขั้นตอนที่ 1: สร้าง Collection และเพิ่มข้อมูลตัวอย่าง

> db.addColumnDemo.insertOne({"StudentId":101,"StudentName":"Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e04d66af5e889d7a519950f") }
> db.addColumnDemo.insertOne({"StudentId":102,"StudentName":"Robert"});
{ "acknowledged": true, "insertedId": ObjectId("5e04d673f5e889d7a5199510") }
> db.addColumnDemo.insertOne({"StudentId":103,"StudentName":"David"});
{ "acknowledged": true, "insertedId": ObjectId("5e04d67bf5e889d7a5199511") }

ขั้นตอนที่ 2: แสดงข้อมูลทั้งหมด (ก่อนเพิ่มฟิลด์)

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

ขั้นตอนที่ 3: เพิ่มฟิลด์ StudentCityName = "New York" ให้ทุกเอกสาร

> db.getCollection('addColumnDemo').update({}, {$set: {"StudentCityName": "New York"}}, false, true);
WriteResult({ "nMatched": 3, "nUpserted": 0, "nModified": 3 })

ขั้นตอนที่ 4: ตรวจสอบผลลัพธ์

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

ผลลัพธ์: ทุกเอกสารมีฟิลด์ StudentCityName: "New York" เพิ่มเข้ามา

{ "_id": ObjectId("5e04d66af5e889d7a519950f"), "StudentId": 101, "StudentName": "Chris", "StudentCityName": "New York" }
{ "_id": ObjectId("5e04d673f5e889d7a5199510"), "StudentId": 102, "StudentName": "Robert", "StudentCityName": "New York" }
{ "_id": ObjectId("5e04d67bf5e889d7a5199511"), "StudentId": 103, "StudentName": "David", "StudentCityName": "New York" }

สรุป: MongoDB เป็น Schema-less การเพิ่มฟิลด์ใหม่ทำได้ง่ายด้วย update({}, {$set: {...}}, false, true) ซึ่งจะเพิ่มฟิลด์เข้าทุกเอกสารที่ Match Query (ที่นี่ {} = ทุกเอกสาร)