2017-06-06 2 views
1

Ich habe JSON wieWie verwende ich den Loop zum Ausführen der Speicherprozedur in der Cosmos-DB/Document-DB?

{ 
    "id": "58d99ca3231f13b9ecbbbca4", 
    "50records": [ 
    { 
     "aomsLineNbr": 1, 
     "licenses": [ 
     { 
      "productKey": "84fc2cde-9735-4cea-b97a-3cd627d3d0a5", 
      "aid": "someAid" 
     } 
     ] 
    } 
    ] 
} 
  • I Rekord von aid auf der Basis holen wollen.

  • 50record können mehrere Objekte haben und licenses können auch mehrere Objekte haben.

  • Ich constucting die Abfrage als "SELECT * FROM orders o WHERE o['50records'][0].licenses[0].aid='someAid'"
  • wie kann ich Schleife diejenigen 50records und licensesaid in allen verfügbaren Objekten suchen?

Unten ist mein Speicher Prozedur:

function getOrdersByAidCollection(aid){ 
var context = getContext(); 
var collection = context.getCollection(); 
var link = collection.getSelfLink(); 
var response = context.getResponse(); 

var query = "SELECT * FROM orders o WHERE o['50records'][0].licenses[0].aid='"+aid+"'"; 

var isAccepted = collection.queryDocuments(collection.getSelfLink(),query, 
function (err, feed, options) { 
    if (err) { 
     return errorResponse(400, err.message); 
    } 
    if (!feed || !feed.length){ 
     return errorResponse(400, "no orders doc found"); 
    }else { 
     getContext().getResponse().setBody(JSON.stringify(feed)); 
    } 
}); 

    if (!isAccepted){ 
     return errorResponse(400, "The query was not accepted by the server."); 
    } 


} 

Wo und wie ich brauche, um eine Schleife zu setzen ??

Jede Hilfe wird spürbar sein!

Dank

Antwort

3

warum brauchen Sie eine Schleife? Das sieht wie eine Frage aus. Können Sie versuchen, eine Abfrage wie folgt:

SELECT VALUE r 
FROM orders c 
JOIN r in c["50records"] 
JOIN li in r.licenses 
WHERE li.aid = "someAid" 

Vielen Dank!

+0

Danke: Arbeitete für mich +1 –

Verwandte Themen