如何使用documentdb编写复合WHERE条件?

时间:2017-12-14 00:28:37

标签: javascript azure azure-cosmosdb

我有一个看起来像这样的文件:

{
  "email": "joan.smith@somedomain.com",
  "name": {
    "first": "Joan",
    "last": "Smith"
  }
}

如何编写一个对整个姓氏使用复合比较的SQL查询?

这实际上是我想在WHERE中做的事情:

SELECT * 
FROM c 
WHERE c.name.first + " " + c.name.last = "Joan Smith"

"复数"版本

SELECT * 
FROM c 
WHERE c.name.first + " " + c.name.last 
  IN ("Joan Smith", "Juan Suarez")

这两个查询都将在Azure门户中运行而不会出现错误,但它们会返回空结果。我试过用括号括起连接,但这没有效果。

1 个答案:

答案 0 :(得分:3)

根据Cosmos DB SQL APIs,如果要在Cosmos DB SQL中实现连接,则需要使用 || 而不是 + 。< / p>

所以,请修改你的sql如下:

SELECT c.id,c.name 
FROM c 
WHERE c.name.first || " " || c.name.last = "Joan Smith"

然后你就可以得到你想要的结果。

enter image description here

希望它对你有所帮助。