MongoDB: findOneAndUpdate

1) findOneAndUpdate in MongoDB updates the document that fulfills the criteria. If more than one document satisfies the criteria, the topmost document, in that case, will be updated.

2) Along with the updation, findOneAndUpdate will return the original document that is updated. 

3) Initially, this command follows 3 parameters with it:

  • filter- This parameter fulfills the criteria for updation. You can also consider it as a filter that decides which document needs to be updated.
  • data- This will decide what updation needs to be done in the document.
  • options- There are several other options we can use with findOneAndUpdate. This includes upsert, collation, writeConcern, and other options that we are going to discuss later.

4) You can refer below for the syntax used for findOneAndUpdate:

Syntax

findOneAndUpdate (filter, data, options)

5) Moving ahead, let's understand the concept of findOneAndUpdate with the help of an example:

Example

You have a collection name edatabase and you there are certain documents present inside it as shown below:
 

findOneAndUpdate

From the above list of documents you want to edit the first document that have a salary less than 10000 and increment that salary with 2000. Follow the code below to perform the same task:

 db.edatabase.findOneAndUpdate({Salary: {$lt:10000}},{$inc:{Salary:2000}})

Output

You can notice that the above command have returned the first original document that satisfied the parameters.

Also, given below is the image of the updated collection:

findOneAndUpdate