當前位置:首頁 > 科技 > 正文

嵌套的N1QL更新查詢

提問開始:

我搜索了一些以前的線程,但基于我如何實現Couchbase的N1QL更新查詢,我不能完全弄清楚我做錯了什麼。我運行的用于選擇目标更新的查詢運行得很好:

SELECT p FROM `NoSQLDB` AS c UNNEST c.phones as p
WHERE c.type='com.model' AND p.typeCode != 'B_BUS'

這将提供以下結果:

[
  {
    "p": {
      "type": "com.model.Phone",
      "typeCode": "H_HOME",
    }
  },
  {
    "p": {
      "type": "com.model.Phone",
      "typeCode": "H_HOME",
    }
  }
]

這是我想要更新的數據,但是,當我使用下面的update語句更新typeCode時,它會執行,但實際上不會更改任何内容:

UPDATE `NoSQLDB` AS c SET p.typeCode = 'B_BUS'
FOR p WITHIN c.phones WHEN c.type='com.model' AND
p.typeCode != 'B_BUS' END LIMIT 1

我也嘗試了一下,但也沒有做任何事情,我想也許父類型是不可用的:

UPDATE `NoSQLDB` AS c SET p.typeCode = 'B_BUS'
FOR p WITHIN c.phones WHEN p.type='com.model.Phone' AND
p.typeCode != 'B_BUS' END LIMIT 1

如果父JSON有任何相關性,則它看起來如下所示:

[
  {
    "NoSQLDB": {
      "id": "01234",
      "keyType": "BANANA",
      "phones": [
        {
          "type": "com.model.Phone",
          "typeCode": "H_HOME",
        },
        {
          "type": "com.model.Phone",
          "typeCode": "B_BUS",
        }
      ],
      "type": "com.model",
      "updatedTimestamp": "2021-03-24T17:53:52.997+0000"
    }
  }
]

任何關于我誤入歧途的見解都将不勝感激;提前謝謝!

回答開始:得票數 2

所有-感謝任何人誰正在審查,但我的一個團隊成員認為它out...in任何人在這個問題上發生的情況,請查看工作的更新查詢:

UPDATE `NoSQLDB` AS c
SET p.typeCode = “B_BUS” FOR p IN phones WHEN p.typeCode != ‘B_BUS’ END
WHERE c.type=‘com.model’
總結

以上是真正的電腦專家為你收集整理的嵌套的N1QL更新查詢的全部内容,希望文章能夠幫你解決所遇到的問題。

如果覺得真正的電腦專家網站内容還不錯,歡迎将真正的電腦專家推薦給好友。

你可能想看:

有話要說...

取消
掃碼支持 支付碼