我如何在 Cosmos DB 中将 "Not in" 与 ARRAY_CONTAINS 一起使用?
How can i use "Not in" with ARRAY_CONTAINS in Cosmos DB?
我是 Cosmos DB 新手。我正在使用 SQL API.now 检索记录 我想在 ARRAY_CONTAINS 中添加 "Not In"。我为此做了很多研发,但找不到任何解决方案。
您不能在 ARRAY_CONTAINS 中添加 "Not In"。 Cosmos DB 中没有这样的语法。
如果您想检索不包含某些值的记录。您可以使用 NOT EXISTS
。对于下面的例子
SELECT food.id,
food.description,
food.tags,
food.foodGroup
FROM food
WHERE NOT EXISTS(SELECT VALUE t FROM t IN food.tags WHERE t.name = 'orange')
以上查询将检索条件 "orange" 不在标签中的所有食品记录。下面是上述查询结果的示例。
{
"id": "19015",
"description": "Snacks, granola bars, hard, plain",
"tags": [
{
"name": "snacks"
},
{
"name": "granola bars"
},
{
"name": "hard"
},
{
"name": "plain"
}
],
"foodGroup": "Snacks"
}
你可以去Cosmos DB的Query Playground学习和练习Cosmos DB查询。
这将查找 属性 resolutions(数组)不包含值“600”的所有项目。
SELECT VALUE root FROM root WHERE (NOT ARRAY_CONTAINS(root["resolutions"], 600))
您可以像下面的例子一样简单地添加 NOT IN:
SELECT
food.id,
food.description,
food.tags,
food.foodGroup
FROM
food
WHERE food.id
NOT IN ('ID1', 'ID2', 'ID3')
这已经过测试,效果很好。
我是 Cosmos DB 新手。我正在使用 SQL API.now 检索记录 我想在 ARRAY_CONTAINS 中添加 "Not In"。我为此做了很多研发,但找不到任何解决方案。
您不能在 ARRAY_CONTAINS 中添加 "Not In"。 Cosmos DB 中没有这样的语法。
如果您想检索不包含某些值的记录。您可以使用 NOT EXISTS
。对于下面的例子
SELECT food.id,
food.description,
food.tags,
food.foodGroup
FROM food
WHERE NOT EXISTS(SELECT VALUE t FROM t IN food.tags WHERE t.name = 'orange')
以上查询将检索条件 "orange" 不在标签中的所有食品记录。下面是上述查询结果的示例。
{
"id": "19015",
"description": "Snacks, granola bars, hard, plain",
"tags": [
{
"name": "snacks"
},
{
"name": "granola bars"
},
{
"name": "hard"
},
{
"name": "plain"
}
],
"foodGroup": "Snacks"
}
你可以去Cosmos DB的Query Playground学习和练习Cosmos DB查询。
这将查找 属性 resolutions(数组)不包含值“600”的所有项目。
SELECT VALUE root FROM root WHERE (NOT ARRAY_CONTAINS(root["resolutions"], 600))
您可以像下面的例子一样简单地添加 NOT IN:
SELECT
food.id,
food.description,
food.tags,
food.foodGroup
FROM
food
WHERE food.id
NOT IN ('ID1', 'ID2', 'ID3')
这已经过测试,效果很好。