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"
        ],
    }
]