- Reference >
mongoShell Methods >- Collection Methods >
- db.collection.replaceOne()
db.collection.replaceOne()¶
On this page
Definition¶
-
db.collection.replaceOne(filter, replacement, options)¶ New in version 3.2.
Replaces a single document within the collection based on the filter.
The
replaceOne()method has the following form:The
replaceOne()method takes the following parameters:Parameter Type Description filterdocument The selection criteria for the update. The same query selectors as in the
find()method are available.Specify an empty document
{ }to replace the first document returned in the collection.replacementdocument The replacement document.
Cannot contain update operators.
writeConcerndocument Optional. A document expressing the write concern. Omit to use the default write concern. upsertboolean Optional. When
true,replaceOne()either:- Inserts the document from the
replacementparameter if no document matches thefilter. - Replaces the document that matches the
filterwith thereplacementdocument.
MongoDB will add the
_idfield to the replacement document if it is not specified in either thefilterorreplacementdocuments. If_idis present in both, the values must be equal.To avoid multiple upserts, ensure that the
queryfields are uniquely indexed.Defaults to
false.Returns: A document containing: - A boolean
acknowledgedastrueif the operation ran with write concern orfalseif write concern was disabled matchedCountcontaining the number of matched documentsmodifiedCountcontaining the number of modified documentsupsertedIdcontaining the_idfor the upserted document
- Inserts the document from the
Behavior¶
replaceOne() replaces the first matching document in
the collection that matches the filter, using the replacement
document.
If upsert: true and no documents match the filter,
replaceOne() creates a new
document based on the replacement document. See
Replace with Upsert.
Capped Collections¶
If a replacement operation changes the document size, the operation will fail.
Examples¶
Replace¶
The restaurant collection contains the following documents:
The following operation replaces a single document where
name: "Central Perk Cafe":
The operation returns:
If no matches were found, the operation instead returns:
Setting upsert: true would insert the document if no match was found. See
Replace with Upsert
Replace with Upsert¶
The restaurant collection contains the following documents:
The following operation attempts to replace the document with
name : "Pizza Rat's Pizzaria", with upsert : true:
Since upsert : true the document is inserted based on the
replacement document. The operation returns:
The collection now contains the following documents:
Replace with Write Concern¶
Given a three member replica set, the following operation specifies a
w of majority and wtimeout of 100:
If the acknowledgement takes longer than the wtimeout limit, the following
exception is thrown: