SELECT data FROM users WHERE data.role = "ADMIN"
由于SQL保留关键字role
,此查询返回错误。与password
相同。
我创建了索引:
CREATE INDEX loginSearchIndex ON users(
data.role ) USING GSI
(使用`char是唯一可行的方法。如果我在查询中执行相同的操作,它将不会返回任何结果。
对于没有任何保留关键字的嵌套对象,它可以正常工作。 关于如何在运行N1QL查询时如何转义保留关键字的任何想法?
所有查询测试均在Query Workbenck中进行
答案 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"