简单的SQL选择不在DocumentDB上工作

时间:2015-08-24 09:17:54

标签: c# azure-cosmosdb

我将这个非常简单的测试文档存储在DocumentDb中:

{
  "DocumentDbTest_Countries": {
      "@country": "C24105130563",
      "@language": "C24105130563",
      "@countryCode": 1663405662,
      "@version": "2015-08-24T08:51:32:030.6165"
  },
  "id": "729607bd-38c5-2a96-0bc4-371a0a5bca4a"
}

我可以使用文档资源管理器轻松找到它,并且还在 Query Explorer 中使用以下Sql查询:

SELECT * FROM DocumentDbTest_Countries c

但令人惊讶的是,当我运行以下SQL查询时,它无法找到结果:

SELECT * FROM DocumentDbTest_Countries c where c.country = 'C24105130563'

有人可以指导我在上面的SQL查询中做错了什么吗?我尝试使用双引号而不是单引号但无济于事。

2 个答案:

答案 0 :(得分:1)

由于@是一个特殊字符,你必须使用Dictionary-like []运算符来转义它。例如,将查询运行为:

condition1

答案 1 :(得分:0)

找到它。这是因为属性中存在@符号。

奇怪的是我使用DocumentDB SDK插入数据,并且属性中的@符号被插入。 :(

现在必须找到一种从插入中删除@符号的方法。