DocumentDb SELECT for array属性不返回任何内容

时间:2017-03-06 07:09:13

标签: azure azure-cosmosdb

这是我在DocumentDb中的文档:

{
   "id": 123,
   "favoriteTeams": [
      {
         "id": 234,
         "name": "Boston Celtics"
      },
      {
         "id": 345,
         "name": "Boston Red Sox"
      },
      {
         "id": 456,
         "name": "New England Patriots"
      }
   ]
}

如果我通过门户网站运行以下SELECT语句,我会得到以下结果:

SELECT c.favoriteTeams FROM Collection c WHERE c.id = 123

结果如下:

[
   {
      "favoriteTeams": [
          {
            "id": 234,
            "name": "Boston Celtics"
          },
          {
            "id": 345,
            "name": "Boston Red Sox"
          },
          {
            "id": 456,
            "name": "New England Patriots"
          }
      ]
   }
]

两个问题:

  1. 如果我通过我的ASP.NET应用程序中的代码发送完全相同的查询,我会得到一个包含所有空值的对象。
  2. 正如您在结果中看到的那样,它会在返回的数组中创建一个对象。我怎样才能获得阵列中的团队。换句话说,我不想要"最喜欢的团队"结果中的对象。我认为这可能导致我的代码中的问题,我无法将结果绑定到我的对象,因为我的代码期望一个数组 - 而不是包含数组的对象。
  3. 我不确定获取阵列是否能解决第一个问题,但我想至少尝试一下。我还想学习如何让团队参与其中 - 没有" favoriteTeams"结果中的对象。

1 个答案:

答案 0 :(得分:0)

如果您更改了查询并添加了VALUE关键字,那么您只需获取数组:

SELECT VALUE c.favoriteTeams FROM Collection c WHERE c.id = "123"

结果:

[
  [
    {
      "id": 234,
      "name": "Boston Celtics"
    },
    {
      "id": 345,
      "name": "Boston Red Sox"
    },
    {
      "id": 456,
      "name": "New England Patriots"
    }
  ]
]