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

MongoDb에서 '다중 업데이트는 $ 연산자에서만 작동합니다'를 해결하시겠습니까?


이를 위해 $set 연산자를 사용할 수 있습니다. 구문은 다음과 같습니다 -

db.yourCollectionName.update({ }, {'$set':"yourFieldName":"yourValue" }, 거짓, 참);

위의 구문을 이해하기 위해 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -

> db.unconditionalUpdatesDemo.insertOne({"ClientName":"Larry","ClientAge":24});{ "승인됨":true, "insertedId":ObjectId("5c8eb7372f684a30fbdfd557")}> db.unconditionalUpdates insertOne({"ClientName":"Mike","ClientAge":26});{ "acknowledged":true, "insertedId":ObjectId("5c8eb73f2f684a30fbdfd558")}> db.unconditionalUpdatesDemo.insertOne({"ClientName":Sam","ClientAge":27});{ "승인됨":true, "insertedId":ObjectId("5c8eb7462f684a30fbdfd559")}> db.unconditionalUpdatesDemo.insertOne({"ClientName":"Carol","ClientAge":});{ "승인됨" :true, "insertedId" :ObjectId("5c8eb7502f684a30fbdfd55a")}

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

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

다음은 출력입니다 -

{ "_id":ObjectId("5c8eb7372f684a30fbdfd557"), "ClientName":"래리", "ClientAge":24}{ "_id":ObjectId("5c8eb73f2f684a30fbdfdfd558"), ClientAge":26}{ "_id":ObjectId("5c8eb7462f684a30fbdfd559"), "ClientName":"Sam", "ClientAge":27}{ "_id":ObjectId("5c8eb7502f684a30fbdfd55") , "클라이언트 연령":29}

다음은 무조건 업데이트에 대한 쿼리입니다 -

> db.unconditionalUpdatesDemo.update({ }, {'$set':{"ClientName":"Robert" }}, false, true);WriteResult({ "nMatched" :4, "nUpserted" :0, "nModified" :4 })

find() 도움말을 사용하여 컬렉션에서 문서를 확인합시다. 쿼리는 다음과 같습니다 -

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

다음은 출력입니다 -

"_id":ObjectId("5c8eb7372f684a30fbdfd557"), "ClientName":"Robert", "ClientAge":24}{ "_id":ObjectId("5c8eb73f2f684a30fbdfd558"), ClientAge":26}{ "_id":ObjectId("5c8eb7462f684a30fbdfd559"), "ClientName":"Robert", "ClientAge":27}{ "_id":ObjectId("5c8eb7502f684a30fb"dfd55" , "클라이언트 연령":29}