2017-06-06 2 views
1

私はaidに基づいてレコードを取得したいLoosを使ってCosmos-DB/Document-DBのストアプロシージャを実行するには?

{ 
    "id": "58d99ca3231f13b9ecbbbca4", 
    "50records": [ 
    { 
     "aomsLineNbr": 1, 
     "licenses": [ 
     { 
      "productKey": "84fc2cde-9735-4cea-b97a-3cd627d3d0a5", 
      "aid": "someAid" 
     } 
     ] 
    } 
    ] 
} 
  • のようなJSONを持っています。

  • 50recordは複数のオブジェクトを持つことができ、licensesは複数のオブジェクトを持つこともできます。

  • は、私がどのように私はループものを50recordslicensesは、利用可能なすべてのオブジェクトでaidを検索することができます "SELECT * FROM orders o WHERE o['50records'][0].licenses[0].aid='someAid'"
  • としてクエリをconstuctingのですか?以下は

は、私の店の手順です:

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."); 
    } 


} 

と私はループを配置する必要がありますか?

何か助けになるでしょう!

ありがとうございました

答えて

3

なぜループが必要ですか?これはクエリの質問のようです。次のようなクエリを試すことができます:

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

ありがとうございます!

+0

ありがとうございました:Worked for me +1 –

関連する問題