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

เพิ่มเอกสารใน MongoDB กรณียังไม่มีอยู่ (Upsert)

ใช้คำสั่ง update() พร้อมตัวเลือก upsert: true เพื่อเพิ่มเอกสารใหม่ถ้ายังไม่มี หรืออัปเดตถ้ามีอยู่แล้ว

ตัวอย่างการใช้งาน

สร้างคอลเลกชัน insertIfNotExistsDemo:

> db.insertIfNotExistsDemo.insertOne({"StudentName":"Mike","StudentAge":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7eec7b559dd2396bcfbfc2") }
> db.insertIfNotExistsDemo.insertOne({"StudentName":"Sam","StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7eec97559dd2396bcfbfc3") }

แสดงข้อมูล:

> db.insertIfNotExistsDemo.find().pretty();
{"_id" : ObjectId("5c7eec7b559dd2396bcfbfc2"), "StudentName" : "Mike", "StudentAge" : 21 }
{"_id" : ObjectId("5c7eec97559dd2396bcfbfc3"), "StudentName" : "Sam", "StudentAge" : 22 }

เพิ่มเอกสารใหม่ถ้ายังไม่มี StudentName: "David":

> key = {"StudentName":"David"}
{ "StudentName" : "David" }
> value = {"StudentName":"David","StudentAge":26}
{ "StudentName" : "David", "StudentAge" : 26 }
> db.insertIfNotExistsDemo.update(key, value, {upsert:true});
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : ObjectId("5c7eecd4c743760e97af8261") })

ตรวจสอบผลลัพธ์ (David ถูกเพิ่มเข้ามา):

> db.insertIfNotExistsDemo.find().pretty();
{"_id" : ObjectId("5c7eec7b559dd2396bcfbfc2"), "StudentName" : "Mike", "StudentAge" : 21 }
{"_id" : ObjectId("5c7eec97559dd2396bcfbfc3"), "StudentName" : "Sam", "StudentAge" : 22 }
{"_id" : ObjectId("5c7eecd4c743760e97af8261"), "StudentName" : "David", "StudentAge" : 26 }