我有一个结构为{doc.data.role.level}的文档,我想访问level属性,但是使用此查询
SELECT r.data.role.level FROM `hostel` r where r.id = '12345678Z'
我得到了错误
"msg": "syntax error - at role",
但是用这些查询我没有结果
SELECT r.data.`role`.level FROM `hostel` r where r.id = '12345678Z'
SELECT `r.data.role.level` FROM `hostel` r where r.id = '12345678Z'
如果字段/标识符或保留关键字中有特殊字符,则必须按https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/identifiers所述,使用反引号(即,转义的标识符)对它们进行转义。.html
示例1:“角色”是保留关键字
{
"id":"12345678Z",
"data":{"role":{"level":3}}
}
SELECT r.data.`role`.level
FROM hostel AS r
WHERE r.id = "12345678Z";
示例2:字段具有特殊字符点。您必须转义整个字段名称(以解释为字段vs嵌套文档)。
{
"id":"12345678Z",
"data.role.level":5
}
SELECT r.`data.role.level`
FROM hostel AS r
WHERE r.id = "12345678Z";
示例3:旅馆是数组。如果要查找数组内部,则必须使用ANY语法。
{
"hostels": [ { "id":"12345678Z"},
{ "id":"34545678Z"}}
]
"data":{"role":{"level":3}}
}
SELECT r.data.`role`.level
FROM hostel AS r
WHERE ANY h IN r.hostels SATISFIES h.id = "12345678Z" END;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句