关键字嵌套路径上的Couchbase N1QL查询错误

时间:2019-05-10 13:48:29

标签: sql couchbase n1ql

SELECT data FROM users WHERE data.role = "ADMIN"

由于SQL保留关键字role,此查询返回错误。与password相同。 我创建了索引:

CREATE INDEX loginSearchIndex ON users( data.role ) USING GSI (使用`char是唯一可行的方法。如果我在查询中执行相同的操作,它将不会返回任何结果。

对于没有任何保留关键字的嵌套对象,它可以正常工作。 关于如何在运行N1QL查询时如何转义保留关键字的任何想法?

所有查询测试均在Query Workbenck中进行

1 个答案:

答案 0 :(得分:1)

所以,在深入研究之后,我发现应该怎么做

创建索引,您可以使用任意多个嵌套字段,但可以使用`char:

CREATE INDEX loginSearchIndex ON users(data.`role`) USING GSI

然后您运行查询

SELECT data FROM users WHERE data.`role` = "ADMIN"

工作正常

更新: 如果您嵌套了JSON,则可以将每个密钥包装在`中。不要忘记添加必要的索引

SELECT data FROM users WHERE data.`children`.`rockets`.`elon`.`age` = "48"