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" }