2016-12-12 2 views
1
db.so.insert({"name":"Bob", "sex": "Male", "location": "France"}) 
db.so.update({"name":"Bob"}, // search 
      {"name":"Bob", "occupation":"The Builder"}) // replace 

전적으로 업데이트해야합니다. 전체 문서를 새 개체로 바꾸십시오. 그러나이 경우 업데이트 쿼리에 필드를 제공하지 않으므로 sexlocation 필드가 남아 있습니다.MongoDB : 문서를 완전히 교체하면서 업데이트 중

+0

_update_?의 [upsert] (https://docs.mongodb.com/v3.2/reference/method/Bulk.find.upsert/) 옵션을 사용해 보셨습니까? –

+0

나는 upsert를 이미 사용하고 있는데, 문서가 전혀 존재하지 않을 때 그것을 삽입한다고 믿는다. – 3zzy

+1

귀하의 의도가 문서를 대체하려는 경우 https://docs.mongodb.com/php-library/master/reference/method/MongoDBCollection-findOneAndReplace/을 시도해보십시오. – Veeram

답변

2

는 당신의 의도 문서를 대체하는 것이었다 경우 findAndReplace을 시도 할 수 있음.

+0

'replaceOne' (3.2 이후)이 훨씬 빠릅니다. – 3zzy

관련 문제