Cosmos SQL 查找数组中包含字符串的项目
Cosmos SQL find items which has a string in array
我正在尝试使用 SQL 在 CosmosDB 中为以下场景编写查询。假设我有一个包含以下项目的集合
{
"resource": "abc",
"region": "east",
"tags": ["tag1", "tag2"]
}
{
"resource": "def",
"region": "east",
"tags": ["tag1", "tag2"]
}
{
"resource": "xyz",
"region": "east",
"tags": ["tag3"]
}
现在我想编写一个查询 return 所有在标签 属性 中具有字符串“tag1”的项目(我想 get/project 该项目中的所有属性)
您可以为此使用 ARRAY_CONTAINS
系统函数。所以你的查询应该是这样的:
SELECT * FROM Root r where ARRAY_CONTAINS(r.tags, "tag1")
这会得到如下结果:
[
{
"id": "cd385b65c6b14b07eb157b72485b1260",
"resource": "abc",
"region": "east",
"tags": [
"tag1",
"tag2"
],
},
{
"id": "bb77e9ad1950467390cbc5ffac33cac3",
"resource": "def",
"region": "east",
"tags": [
"tag1",
"tag2"
],
}
]
我正在尝试使用 SQL 在 CosmosDB 中为以下场景编写查询。假设我有一个包含以下项目的集合
{
"resource": "abc",
"region": "east",
"tags": ["tag1", "tag2"]
}
{
"resource": "def",
"region": "east",
"tags": ["tag1", "tag2"]
}
{
"resource": "xyz",
"region": "east",
"tags": ["tag3"]
}
现在我想编写一个查询 return 所有在标签 属性 中具有字符串“tag1”的项目(我想 get/project 该项目中的所有属性)
您可以为此使用 ARRAY_CONTAINS
系统函数。所以你的查询应该是这样的:
SELECT * FROM Root r where ARRAY_CONTAINS(r.tags, "tag1")
这会得到如下结果:
[
{
"id": "cd385b65c6b14b07eb157b72485b1260",
"resource": "abc",
"region": "east",
"tags": [
"tag1",
"tag2"
],
},
{
"id": "bb77e9ad1950467390cbc5ffac33cac3",
"resource": "def",
"region": "east",
"tags": [
"tag1",
"tag2"
],
}
]