【发布时间】:2018-02-27 16:58:34
【问题描述】:
我在 DocumentDB 中有一个包含如下对象的集合:
{
"id":"1de03a93-729d-43da-985a-12584079b4f8",
"Components":[
{
"Name":"MyComponentName1",
"Value": 12345
},
{
"Name":"MyComponentName2",
"Value": 34567
},
{
"Name":"MyComponentName3",
"Value": 56789
}
]
...other properties irrelevant to question...
}
查询 CosmosDB 时,我有以下查询:
SELECT VALUE d FROM c
JOIN d IN c.Components
WHERE d.Name="MyComponentName1"
正确返回:
{
"Name":"MyComponentName1",
"Value":12345
}
但是,当我尝试基于字符串运算符进行查询时:
SELECT VALUE d FROM c
JOIN d IN c.Components
WHERE CONTAINS(d.Name,'MyComponent') --OR STARTSWITH OR ENDSWITH
我没有得到任何结果。
如果我采用 与上述相同的查询,但我在 where 子句中添加了 id 限制:
SELECT VALUE d FROM c
JOIN d IN c.Components
WHERE CONTAINS(d.Name,'MyComponent')
AND c.id = "1de03a93-729d-43da-985a-12584079b4f8"
我得到了我期望的结果,但显然只针对id。我需要与字符串运算符匹配的所有文档。
这是 CosmosDB 的错误,还是我做错了什么?
【问题讨论】:
标签: azure-cosmosdb