问题描述
我是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