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

私は完全な更新を行う必要があります。ドキュメント全体を新しいオブジェクトに置き換えます。ただし、この場合は、更新クエリにこれらのフィールドを指定していないため、sexフィールドとlocationフィールドは残ります。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

関連する問題