This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Update
editUpdate
editThe update API allows updates of a specific document using the given script. In
the following example, we will index a document that also tracks how many times
a character has said the given quote, and then we will update the times
field.
'use strict' const { Client } = require('@elastic/elasticsearch') const client = new Client({ cloud: { id: '<cloud-id>' }, auth: { apiKey: 'base64EncodedKey' } }) async function run () { await client.index({ index: 'game-of-thrones', id: '1', document: { character: 'Ned Stark', quote: 'Winter is coming.', times: 0 } }) await client.update({ index: 'game-of-thrones', id: '1', script: { lang: 'painless', source: 'ctx._source.times++' // you can also use parameters // source: 'ctx._source.times += params.count', // params: { count: 1 } } }) const document = await client.get({ index: 'game-of-thrones', id: '1' }) console.log(document) } run().catch(console.log)
With the update API, you can also run a partial update of a document.
'use strict' const { Client } = require('@elastic/elasticsearch') const client = new Client({ cloud: { id: '<cloud-id>' }, auth: { apiKey: 'base64EncodedKey' } }) async function run () { await client.index({ index: 'game-of-thrones', id: '1', document: { character: 'Ned Stark', quote: 'Winter is coming.', isAlive: true } }) await client.update({ index: 'game-of-thrones', id: '1', doc: { isAlive: false } }) const document = await client.get({ index: 'game-of-thrones', id: '1' }) console.log(document) } run().catch(console.log)