ใช้คำสั่ง 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 }