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

การสร้างฟิลด์ใหม่ในเอกสารที่มีอยู่แล้วใน MongoDB

ใช้ตัวดำเนินการ $set (แนะนำ) หรือ $addToSet เพื่อเพิ่มฟิลด์ใหม่ในเอกสารที่มีอยู่แล้ว

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

> db.createFieldDemo.insertOne({"StudentFirstName": "John", "StudentAge": 21});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e28b50a6c6dd317ad95") }
> db.createFieldDemo.insertOne({"StudentFirstName": "Larry", "StudentAge": 23});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e2fb50a6c6dd317ad96") }
> db.createFieldDemo.insertOne({"StudentFirstName": "Chris", "StudentAge": 22});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e38b50a6c6dd317ad97") }
> db.createFieldDemo.insertOne({"StudentFirstName": "David", "StudentAge": 25});
{ "acknowledged": true, "insertedId": ObjectId("5cd99e43b50a6c6dd317ad98") }

แสดงข้อมูลก่อนเพิ่มฟิลด์

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

ผลลัพธ์

{
  "_id": ObjectId("5cd99e28b50a6c6dd317ad95"),
  "StudentFirstName": "John",
  "StudentAge": 21
}
{
  "_id": ObjectId("5cd99e2fb50a6c6dd317ad96"),
  "StudentFirstName": "Larry",
  "StudentAge": 23
}
{
  "_id": ObjectId("5cd99e38b50a6c6dd317ad97"),
  "StudentFirstName": "Chris",
  "StudentAge": 22
}
{
  "_id": ObjectId("5cd99e43b50a6c6dd317ad98"),
  "StudentFirstName": "David",
  "StudentAge": 25
}

เพิ่มฟิลด์ StudentLastName ให้เอกสารที่ _id = ObjectId("5cd99e43b50a6c6dd317ad98")

> db.createFieldDemo.update(
    { _id: ObjectId("5cd99e43b50a6c6dd317ad98") },
    { $set: { "StudentLastName": "Miller" } }
  );
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

หมายเหตุ: ตัวอย่างต้นฉบับใช้ $addToSet ซึ่งเหมาะสำหรับการเพิ่มค่าในอาร์เรย์ (ป้องกันค่าซ้ำ) แต่สำหรับฟิลด์ทั่วไปควรใช้ $set

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

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

ผลลัพธ์ (มีฟิลด์ StudentLastName เพิ่มเข้ามา)

{
  "_id": ObjectId("5cd99e28b50a6c6dd317ad95"),
  "StudentFirstName": "John",
  "StudentAge": 21
}
{
  "_id": ObjectId("5cd99e2fb50a6c6dd317ad96"),
  "StudentFirstName": "Larry",
  "StudentAge": 23
}
{
  "_id": ObjectId("5cd99e38b50a6c6dd317ad97"),
  "StudentFirstName": "Chris",
  "StudentAge": 22
}
{
  "_id": ObjectId("5cd99e43b50a6c6dd317ad98"),
  "StudentFirstName": "David",
  "StudentAge": 25,
  "StudentLastName": "Miller"
}

สรุป: ใช้ update() หรือ updateOne() พร้อม $set: { "fieldName": "value" } เพื่อเพิ่ม/แก้ไขฟิลด์ในเอกสารที่มีอยู่แล้ว