如何在 kuzzle 中的现有数组中添加或删除元素
How to append or remove an element from an existing array in kuzzle
让我们想象一下这种情况
Alice 和 Bob 连接到同一个 kuzzle 服务器。
有一个文档结构如下:
{
"nom": "Festival de l'automne",
"participants": [id1, id2, ...]
}
爱丽丝和鲍勃想几乎同时更新文档。
如果使用 kuzzle.document.update()
我必须使用以前存储在 Alice 或 Bob 的客户端上的值来更新参与者数组。这可能会导致冲突或数据丢失。
我的问题是有没有办法使用以前的服务器端值更新“参与者”数组?或者有没有办法直接使用 elasticsearch 查询来使用
这样的用户脚本
{
"script" : "ctx._source.participants += participants",
"params" : {
"participants" : "idx"
}
}
出于安全原因,Kuzzle 不会公开 Elasticsearch 脚本功能(特权升级和可能 DOS 服务器的繁重脚本)。
您应该公开一个特定的 API 操作以自动将新值附加到数组。此 API 操作应使用 Integrated Elasticsearch Client 使用无痛脚本。
您可以在 documentation
中找到有关如何处理数组的更多信息
让我们想象一下这种情况 Alice 和 Bob 连接到同一个 kuzzle 服务器。 有一个文档结构如下:
{
"nom": "Festival de l'automne",
"participants": [id1, id2, ...]
}
爱丽丝和鲍勃想几乎同时更新文档。
如果使用 kuzzle.document.update()
我必须使用以前存储在 Alice 或 Bob 的客户端上的值来更新参与者数组。这可能会导致冲突或数据丢失。
我的问题是有没有办法使用以前的服务器端值更新“参与者”数组?或者有没有办法直接使用 elasticsearch 查询来使用
这样的用户脚本{
"script" : "ctx._source.participants += participants",
"params" : {
"participants" : "idx"
}
}
出于安全原因,Kuzzle 不会公开 Elasticsearch 脚本功能(特权升级和可能 DOS 服务器的繁重脚本)。
您应该公开一个特定的 API 操作以自动将新值附加到数组。此 API 操作应使用 Integrated Elasticsearch Client 使用无痛脚本。
您可以在 documentation
中找到有关如何处理数组的更多信息