2

我有一个 Cosmo DB 图,我想在其中使用与 Cosmos DB 中的 CONTAINS 匹配的字符串访问表达式中的“名称”字段。CONTAINS 在匹配 CONATINS 的 1 级工作

  1. SELECT s.label, s.name FROM s WHERE CONTAINS(LOWER(s.name._value), "cara") AND s.label = "site"

我也尝试过使用 UDF 函数

  1. SELECT s.label, s.name FROM s WHERE(s.label = 'site' AND udf.strContains(s.name._value, '/cara/i'))

我没有从 Cosmos DB 中得到任何命中或语法错误,即使在此示例中至少应该是一条记录。有人有提示吗?提前致谢

[
    {
        "label": "site",
        "name": [
            {
                "_value": "0315817 Caracol",
                "id": "2e2f000d-2e0a-435a-b472-75d257236558"
            }
        ]
    },
    {
        "label": "site",
        "name": [
            {
                "_value": "0315861 New Times",
                "id": "48497172-1734-43d0-9866-51faf9f603ed"
            }
        ]
    }
]
4

1 回答 1

1

我注意到该name属性是一个数组而不是一个对象。所以,你需要join在 sql 中使用。

SELECT s.label, s.name , name._value FROM s 
join name in s.name
where CONTAINS(LOWER(name._value), "cara") AND s.label = "site"

输出:

在此处输入图像描述

希望它可以帮助你。

于 2018-08-22T09:50:25.757 回答