# Collection.update / Query.update

Updates multiple records.

Function signature is shown as below:

function update(options: object): Promise<Result>

Parameter description

options is a required parameter, an object with the following format. For example: if one of success, fail, and complete is passed in, it means the callback style is used, and Promise is not returned.

Field Type Required Default Description
data Object Yes Updates objects
success Function No Callback succeeds. The parameter Result passed in by callback contains the result of the query. The Result is defined as below.
fail Function No Callback fails
complete Function No Callback function when call completes (always executed whether call succeeds or fails)

Description of return value

If the incoming options parameter does not have a success, fail or complete field, a Promise will be returned or otherwise no value is returned. The results of resolve and reject for Promise are defined as below:

Result Description
resolve The result of a new record. The Result is defined as below.
reject Reason for failure

Result description

The result of success callback and Result of resolve for Promise are objects with the following structure:

Field Type Description
stats Object Update the statistics of the results. Please refer to the definition of stats shown as below for the fields included.

The stats object is an object with the following structure:

Field Type Description
updated number Number of records updated successfully

Note: The success of API call does not necessarily mean that the record you want to update has been updated. For example, the specified filter condition "where" can only filter out 0 matched record, so you may see that the call of updated API is done successfully but no record is updated. In this case, use stats.updated to check the update status.

Sample code

Update to-dos and add 10 to all of the pending to-dos:

Callback style

const _ = db.command
db.collection('todos').where({
  done: false
}).update({
  data: {
    progress: _.inc(10)
  },
  success: console.log,
  fail: console.error
})

Promise style

const _ = db.command
db.collection('todos').where({
  done: false
})
.update({
  data: {
    progress: _.inc(10)
  },
})
.then(console.log)
.catch(console.error)