Java Couchbase 如何更新 JSON 子项?

标签 java json couchbase

我正在使用 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/

相关文章:

java - 无法使用 groovy 脚本在 couchbase 上创建主索引

java - 如何让 Spring Data Couchbase 保留 id 字段?

java - 在 spring boot 应用程序中外部化查询

java - 设置 int 值会导致性能问题

java - 无法解析的日期 : "2013-05-16 09:35:31.0"

jquery - 循环动态 JSON 字符串

php - 我想从这个 JSON URL 回显 IMDB ID、标题、质量和嵌入 URL

c# - 桌面应用程序的推送通知

java - 不一致的 keyPressed 事件 : sometimes fires, 有时不会,重新启动程序而不更改任何内容,它可能或现在可以工作

ruby-on-rails - Ruby Rack App - Couchbase DNS/主机名查找错误