我正在使用 dropwizard 和 couchbase。
我想更新文档。我正在使用的文档具有如下结构:
{
"animal": {
"cat": {
"name": "snowball",
"color": "black",
"age": "7"
}
}
}
我只想更新年龄。
我可以从 couchbase 获取 JSON 格式的文档,如下所示:
JsonDocument docToUpdate = bucket.get(docId);
然后我尝试像这样更新它:
docToUpdate.content().put("age", "10");
但这只是将其添加到顶层,所以我得到了这个:
{
"animal": {
"cat": {
"name": "snowball",
"color": "black",
"age": "7"
}
}
"age": "10"
}
有没有一种简单的方法可以做到这一点——访问子 JSON?在寻找解决方案时,我发现了 couchbase 的子文档。这是要走的路还是有一个简单的解决方案?谢谢。
最佳答案
您更新了错误的节点。 试试这个。
docToUpdate.content().put("animal.cat.age", "10");
更新查询应该是
UPDATE bucket USE KEYS "docId" SET animal.cat.age=10
关于Java Couchbase 如何更新 JSON 子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43243452/