如何编写一个高效的cosmosdb查询来搜索数组中的空值?

gcuhipw9  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(371)

我正在尝试搜索cosmos数据库中所有具有 name 的价值 null 在一个 users 但此查询似乎效率非常低,运行时间超过15秒,使用了700多个ru:

SELECT * FROM root r
WHERE ARRAY_CONTAINS(r.users, { 'name': null }, true)

但是,只有在搜索包含空名称的项时才会发生这种情况。当我运行相同的查询以查找包含特定名称的项目时,搜索只需几秒钟,接近50个ru:

SELECT * FROM root r
WHERE ARRAY_CONTAINS(r.users, { 'name': 'example' }, true)

我能做些什么来提高数组中空值的搜索效率吗?

kpbpu008

kpbpu0081#

我不知道您文档的结构,但您可以尝试以下sql:

SELECT DISTINCT r.id,r.users FROM root r JOIN u IN r.users WHERE IS_NULL(u.name)

希望能对你有所帮助。

相关问题