如何编写有效的Cosmos DB查询来搜索数组中的空值?

时间:2020-05-19 17:13:40

标签: sql azure-cosmosdb

我正在尝试在name数组中搜索Cosmos DB中所有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)

有什么办法可以使搜索数组中的空值更有效?

1 个答案:

答案 0 :(得分:1)

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

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

希望它可以为您提供帮助。