我的数据库中有一些特定格式的 JSON 文档。有一个键出现在文档中的两个位置。我想编写一个搜索查询,我可以在其中搜索仅在第二次出现时的值。如需更清晰的图片,请参阅以下创建的示例。我试过了,cts.jsonPropertyScopeQuery("c1",cts.trueQuery())但没有指定路径。我也试过了cts.jsonPropertyScopeQuery("c1", "e/c1")。 { "a": "aa", "b": "bb", "c": { "c1": "cc", "c2": "ccc" }, "d": "dd", "e": { "c1": "xx" }}我希望查询从所有文档中获取c1under 的所有值e并将它们放入数组中以供进一步处理。
3 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
如果路径已知,请考虑在特定路径上定义路径范围索引并使用 cts.pathRangeQuery 或 cts.values,具体取决于您的目标。
例如,在 /e/c1(或 e/c1,如果需要相对)上定义路径范围索引,然后在该索引上使用 cts.values 来获取所有值:
cts.values(cts.pathReference("e/c1"))
同样,如果要搜索包含特定值的文档,而不是所有值的列表,则可以使用 cts.pathRangeQuery:
cts.search(cts.pathRangeQuery("e/c1","=","xx"))
跃然一笑
TA贡献1826条经验 获得超6个赞
由于要检索值列表,因此需要设置索引。如果您想要所有c1
值,您将使用范围索引,但由于您只想要其中的一些,您将需要一个路径范围索引。完成设置后,您可以使用cts.values
.
添加回答
举报
0/150
提交
取消