Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

업데이트 및 쿼리 부분을 결합하여 MongoDB에서 upserted 문서를 구성하시겠습니까?

<시간/>

upsert:true와 함께 $set 연산자를 사용해야 합니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.updateWithUpsertDemo.insertOne({"StudentFirstName":"John","StudentAge":21});{ "승인된":true, "insertedId":ObjectId("5cd2a61c345990cee87fd890.updateWithUpdateWithUpdate insertOne({"StudentFirstName":"래리","StudentAge":23});{ "승인됨" :true, "insertedId" :ObjectId("5cd2a624345990cee87fd891")}> db.updateWithUpsertName({".insertOne") David","StudentAge":24});{ "승인됨" :true, "insertedId" :ObjectId("5cd2a62c345990cee87fd892")}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.updateWithUpsertDemo.find().pretty();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id":ObjectId("5cd2a61c345990cee87fd890"), "StudentFirstName":"John", "StudentAge":21}{ "_id":ObjectId("5cd2a624345990cee87fd891") StudentAge" :23}{ "_id" :ObjectId("5cd2a62c345990cee87fd892"), "StudentFirstName" :"David", "StudentAge" :24}

다음은 upserted 문서를 구성하기 위해 업데이트 및 쿼리 부분을 결합하는 쿼리입니다 -

> db.updateWithUpsertDemo.update({_id:ObjectId("5cd2a624345990cee87fd891")},{"$set":{"StudentFirstName":"Chris"}}, {upsert:true});WriteResult({"nMatched " :1, "nUpserted" :0, "nModified" :1 })

"StudentFirstName" 필드가 변경되었는지 확인합시다 -

> db.updateWithUpsertDemo.find().pretty();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" :ObjectId("5cd2a61c345990cee87fd890"), "StudentFirstName" :"John", "StudentAge" :21}{ "_id" :ObjectId("5cd2a624345990cee87fd891")ris StudentAge" :23}{ "_id" :ObjectId("5cd2a62c345990cee87fd892"), "StudentFirstName" :"David", "StudentAge" :24}