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

ล็อคธุรกรรมใน MongoDB?


ไม่มีการสนับสนุนธุรกรรมใน MongoDB 4.0 เพื่อให้ได้ผลลัพธ์ที่คล้ายกัน ให้ใช้ findOneAndUpdate()

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

> db.demo404.insertOne({"FirstName":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e6f8c38fac4d418a0178592")
}
> db.demo404.insertOne({"FirstName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e6f8c3cfac4d418a0178593")
}
> db.demo404.insertOne({"FirstName":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e6f8c40fac4d418a0178594")
}

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

> db.demo404.find();

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

{ "_id" : ObjectId("5e6f8c38fac4d418a0178592"), "FirstName" : "John" }
{ "_id" : ObjectId("5e6f8c3cfac4d418a0178593"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5e6f8c40fac4d418a0178594"), "FirstName" : "Mike" }

ต่อไปนี้เป็นแบบสอบถามเพื่อใช้ findOneAndUpdate และตั้งค่าล็อคใน MongoDB -

> result=db.demo404.findOneAndUpdate({"in_transaction": {"$exists": false}}, {"$set": {"in_transaction": true}});

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

{ "_id" : ObjectId("5e6f8c38fac4d418a0178592"), "FirstName" : "John" }