2017-07-17 1 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" 
     } 
} 

をそれは、配列

Aであるので、それが返されますr.data2.keyを参加]を選択することはできていないようですそれぞれの "data2"配列要素のための各文書のコピー。私にとってはうまくいかない。私の唯一の選択肢は、データを移行し、必要なデータを独自の配列に入れてオブジェクト全体を選択できるようにすることです。

これは私が把握できなかったいくつかの可能性がありますか?

答えて

1

DocumentDBは、サブクエリをサポートするまで、マイク、あなたが推測したよう

が、これは、カスタムUDFなしでは不可能です。

幸運:あなたはそのルートを下るしたい場合、UDFが見ているかもしれ方法の例については、以下の回答を参照してください!

関連する問題