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

เพิ่มฟิลด์ใหม่ให้กับทุกเอกสารในคอลเลกชัน MongoDB หรือไม่


หากต้องการเพิ่มฟิลด์ใหม่ให้กับทุกเอกสารในคอลเลกชัน MongoDB คุณสามารถใช้ตัวดำเนินการ $set ไวยากรณ์มีดังนี้:

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

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันพร้อมเอกสารบางส่วน แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้:

>db.addNewFieldToEveryDocument.insertOne({"StudentName":"John","StudentAddress":"US
"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6efc0b6fd07954a48906ae")
}
>db.addNewFieldToEveryDocument.insertOne({"StudentName":"David","StudentAddress":"U
K"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6efc0b6fd07954a48906af")
}
>db.addNewFieldToEveryDocument.insertOne({"StudentName":"Carol","StudentAddress":"U
K"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6efc0b6fd07954a48906b0")
}
>db.addNewFieldToEveryDocument.insertOne({"StudentName":"Bob","StudentAddress":"US"
});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6efc0b6fd07954a48906b1")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

{
   "_id" : ObjectId("5c6efc0b6fd07954a48906ae"),
   "StudentName" : "John",
   "StudentAddress" : "US"
}
{
   "_id" : ObjectId("5c6efc0b6fd07954a48906af"),
   "StudentName" : "David",
   "StudentAddress" : "UK"
}
{
   "_id" : ObjectId("5c6efc0b6fd07954a48906b0"),
   "StudentName" : "Carol",
   "StudentAddress" : "UK"
}
{
   "_id" : ObjectId("5c6efc0b6fd07954a48906b1"),
   "StudentName" : "Bob",
   "StudentAddress" : "US"
}

ต่อไปนี้เป็นแบบสอบถามเพื่อเพิ่มฟิลด์ใหม่ให้กับทุกเอกสาร:

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

ด้านบน เราได้เพิ่มฟิลด์ใหม่ “StudentAge”:24 ในทุกเอกสาร ให้เราตรวจสอบช่อง “StudentAge”:24 ว่าเพิ่มทุกเอกสารสำเร็จหรือไม่ แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

{
   "_id" : ObjectId("5c6efc0b6fd07954a48906ae"),
   "StudentName" : "John",
   "StudentAddress" : "US",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c6efc0b6fd07954a48906af"),
   "StudentName" : "David",
   "StudentAddress" : "UK",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c6efc0b6fd07954a48906b0"),
   "StudentName" : "Carol",
   "StudentAddress" : "UK",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c6efc0b6fd07954a48906b1"),
   "StudentName" : "Bob",
   "StudentAddress" : "US",
   "StudentAge" : 24
}