如何使用SQL CONTAINS查询Cosmos DB图

时间:2018-08-21 08:28:26

标签: sql azure graph azure-cosmosdb azure-cosmosdb-sqlapi

我有一个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"
            }
        ]
    }
]

1 个答案:

答案 0 :(得分:1)

我注意到name属性是一个数组而不是对象。因此,您需要在sql中使用join

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

输出:

enter image description here

希望它对您有帮助。