Как я могу получить обновленный документ в ответе - PullRequest
2 голосов
/ 27 марта 2020
let elasticsearch = require('elasticsearch');

let client = new elasticsearch.Client({
     host: "*********************",
});

let temp = await client.update({
    index: container,
    id: 1,
    type: '_doc',
    body: {"name": "rks", "visible": true},
    doc_as_upsert: true,

})

Ответ на этот запрос возвращает

"result": {
    "_index": "container",
    "_type": "_doc",
    "_id": "1",
    "_version": 2,
    "result": "updated",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1,
    "_primary_term": 1
}

Как вернуть обновленный документ в ответ. Есть ли способ / метод для достижения этой цели. Пожалуйста, помогите мне

1 Ответ

2 голосов
/ 27 марта 2020

Лучшее, что вы можете сделать, это установить "_source": true. Таким образом, вы получите исходный документ.

Например,

POST test/_update/1
{
  "doc":{
    "hello": "world",
    "hey": "there"
  },
  "_source": true,
  "doc_as_upsert": true
}

Пример ответа:

{
  "_index" : "test",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 1,
  "get" : {
    "_seq_no" : 2,
    "_primary_term" : 1,
    "found" : true,
    "_source" : {
      "hello" : "world",
      "hey" : "there"
    }
  }
}
...