Couchbase N1QL更新查询对象数组

问题描述

我是n1ql的新手。我想使用“ ABC 搜索存储桶中的所有记录,然后将其替换为“ DEF ”。您能帮我创建此查询和索引吗?
样本记录

{
  "userTypeNm": "pro","userStateArray": [
    {
      "bindCd": "1591779772457","name": "########","state": "**ABC**","ts": "1591779772457"
    }
  ],"vts": "1591779772457","ets": "1591779772457","daoObj": {
    "authDaObj": {
      "data": "eyJ0cmFuc2FjdGlvbklkIjoiVVNMT0dPTi0xN2U3YWQ5ZC0wN","id": "829892839892"
    }
  }
}

解决方法

CREATE INDEX ix1 ON default
 (DISTINCT ARRAY v.state FOR v IN userStateArray END) WHERE userTypeNm = "pro";

UPDATE default  AS d  SET usa.state = "DEF"  FOR usa IN d.userStateArray WHEN usa.state = "ABC" END
WHERE ANY v IN d.userStateArray SATISFIES v.state = "ABC" END;

https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/update.html