2017-07-17 88 views
0

從嵌入式陣列單場我有一個documentDB集合看起來像這樣的例子:選擇在蔚藍documentDB

{ 
    "data1": "hello", 
    "data2": [ 
     { 
      "key": "key1", 
      "value": "value1" 
     }, 
     { 
      "key": "key2", 
      "value": "value2" 
     } 
} 

在現實中,數據有很多其他領域和嵌入式陣列有一些領域,其中數據是相當大的。我需要查詢數據,我關心data2數組中的小「鍵」字段,但我不需要大的「值」。我發現返回所有值數據都會導致性能問題,但如果我將數組中的數據從SELECT中排除在一起,則速度很快(因此數據量是問題)。

我找不出一種方法來只返回「鍵」,但排除嵌入數組中的「值」。

我基本上要SELECT r.data1, r.data2.key,並把它作爲返回:

{ 
    "data1": "hello", 
    "data2": [ 
     { 
      "key": "key1" 
     }, 
     { 
      "key": "key2" 
     } 
} 

,但它似乎並不可能選擇r.data2.key,因爲它是一個數組

聯接將導致它返回一個每個「data2」數組元素的每個文檔的副本,這對我不起作用。我唯一的選擇是遷移數據並將我想要的數據放入它自己的數組中,這樣我就可以選擇整個對象。

這是可能的一些如何,我一直無法弄清楚?

回答

1

麥克,

正如你已經猜到,這也不是沒有可能的自定義UDF直到DocumentDB支持子查詢。如果你想往下走這條路線,請參閱下面的答案如何爲例UDF可以來看看:

祝你好運!