Couchbase UPDATE是否不更新所有匹配筛选器的文档?

时间:2019-03-22 09:35:30

标签: java couchbase

使用以下N1QL更新语句时,我遇到一个非常奇怪的情况:

update  testBucket set A1='TESTVALUE' where TONUMBER(`Respondent.Serial`) = 8

{"results": []}



select А1 from testBucket where TONUMBER(`Respondent.Serial`) = 8

我得到以下内容(注意,并非所有内容都已更新):

      {
        "A1": "ONE"
      },
      {
        "A1": "TESTVALUE"
      },

      {
        "A1": "TESTVALUE"
      },
      {
        "A1": "TESTVALUE"
      },
      {
        "A1": "TESTVALUE"
      },
      {
        "A1": "TESTVALUE"
      },
      {
        "A1": "TEST2"
      }

1 个答案:

答案 0 :(得分:2)

问题可能是您在Respondent.Serial周围使用反引号。

如果您的文档结构是这样的,那是不对的。

{
  "Respondent": {
      "Serial": "8"
  }
}

仅当您有一个包含句点的字段名称时,才应使用反引号,例如:

{
  "Respondent.Serial": "8"
}

假定您具有以前的文档结构,请尝试使用没有反引号的查询。