2017-03-06 18 views
1

下面是我在DocumentDb文件看起來像:DocumentDb SELECT數組屬性不返回任何

{ 
    "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. 正如你在結果中看到的,它在它返回的數組內部創建一個對象。我怎樣才能得到一個數組中的團隊。換句話說,我不想在結果中使用「favoriteTeams」對象。我想這可能會導致我的代碼中,我無法將結果綁定到我的對象的問題,因爲我的代碼需要一個數組 - 而不是包含該數組的對象。

我不確定是否獲取數組將解決第一個問題,但我想至少嘗試一下。我還想學習如何獲得陣列中的團隊 - 結果中沒有「favoriteTeams」對象。

回答

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" 
    } 
    ] 
]