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

แบบสอบถาม MongoDB เพื่อเพิ่มการประทับเวลาเฉพาะในกรณีที่ไม่มีอยู่


สำหรับสิ่งนี้ ให้ใช้ upsert และ multi ใน MongoDB -

เสริม − หากตั้งค่าเป็น true ให้สร้างเอกสารใหม่เมื่อไม่มีเอกสารที่ตรงกับเกณฑ์การสืบค้น ค่าเริ่มต้นเป็นเท็จซึ่งจะไม่แทรกเอกสารใหม่เมื่อไม่พบรายการที่ตรงกัน

หลายรายการ − f ตั้งค่าเป็นจริง อัปเดตเอกสารหลายฉบับที่ตรงตามเกณฑ์การสืบค้น หากตั้งค่าเป็นเท็จ ให้อัปเดตหนึ่งเอกสาร ค่าเริ่มต้นเป็นเท็จ

ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo479.insertOne({"DueDate":new ISODate("2020-01-10"),"Name":"Chris"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e820733b0f3fa88e2279094")
}
> db.demo479.insertOne({"Name":"David"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e820748b0f3fa88e2279095")
}
> db.demo479.insertOne({"DueDate":new ISODate("2019-12-31"),"Name":"Bob"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e82075fb0f3fa88e2279096")
}
> db.demo479.insertOne({"Name":"Carol"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e820767b0f3fa88e2279097")
}

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

> db.demo479.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e820733b0f3fa88e2279094"), "DueDate" : ISODate("2020-01-
10T00:00:00Z"), "Name" : "Chris" }
{ "_id" : ObjectId("5e820748b0f3fa88e2279095"), "Name" : "David" }
{ "_id" : ObjectId("5e82075fb0f3fa88e2279096"), "DueDate" : ISODate("2019-12-
31T00:00:00Z"), "Name" : "Bob" }
{ "_id" : ObjectId("5e820767b0f3fa88e2279097"), "Name" : "Carol" }

ต่อไปนี้เป็นแบบสอบถามเพื่อเพิ่มฟิลด์ประทับเวลาเฉพาะในกรณีที่ไม่มี -

> db.demo479.update({DueDate:{$exists:false}}, {$set : {"DueDate":new Date}}, {upsert:false,
multi:true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

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

> db.demo479.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e820733b0f3fa88e2279094"), "DueDate" : ISODate("2020-01-
10T00:00:00Z"), "Name" : "Chris" }
{ "_id" : ObjectId("5e820748b0f3fa88e2279095"), "Name" : "David", "DueDate" :
ISODate("2020-03-30T14:52:29.656Z") }
{ "_id" : ObjectId("5e82075fb0f3fa88e2279096"), "DueDate" : ISODate("2019-12-
31T00:00:00Z"), "Name" : "Bob" }
{ "_id" : ObjectId("5e820767b0f3fa88e2279097"), "Name" : "Carol", "DueDate" :
ISODate("2020-03-30T14:52:29.656Z") }