2017-05-24 9 views
0

Ich habe ein Dokument in Dokument db, die eine Eigenschaft hat, die ein Array eines Objekts ist. Ich möchte es reduzieren und eine einzige Eigenschaft in allen Objekten in Bezug auf ein Array erhalten.Flachen Sie ein Dokument in Dokument db

zB:

{ 
    "name" : "blah", 
    "address" : [ 
     { 
      "type" : "home", 
      "location" : "123 st" 
     }, 
     { 
      "type" : "work", 
      "location" : "321 st" 
     } 
    ] 
} 

-> Was ich will

[ 
    { 
     "name" : "blah", 
     "locations" : [ "123 st", "321 st" ] 
    } 

]

+0

Haben Sie den 'JOIN' Operator in der SQL Syntax betrachtet? –

+0

@DavidMakogon Yeah sah, dass JOIN separaten Datensatz für jeden Wert im Array erstellen wird. – Yashashwi

Antwort

0

Sie könnten versuchen, zu definieren und verwenden User-defined functionlocations Informationen zu extrahieren.

enter image description here

Und dann könnten Sie diese benutzerdefinierte Funktion aufrufen, aus dem Inneren Ihrer Anfrage.

enter image description here

+0

Hmm hätte nicht gedacht, dass wir versuchen werden, dieses Verfahren zu nutzen, vielen Dank. – Yashashwi

+0

Nur realisiert, glaube nicht, dass ich das nutzen kann. Dies liegt daran, dass die Abflachung in Azure Search Index Data Source vorgenommen werden muss. Daher kann die in DocumentDb definierte Funktion dort nur verwendet werden, wenn ich dieselbe UDF in Azure Search definieren kann. – Yashashwi

+0

Sie können die benutzerdefinierte Funktion einer Abfrage an die Datenquelle in Azure Search übergeben. –

Verwandte Themen