如何使用Loop在Cosmos-DB / Document-DB中执行存储过程?

我有JSON喜欢

{ "id": "58d99ca3231f13b9ecbbbca4", "50records": [ { "aomsLineNbr": 1, "licenses": [ { "productKey": "84fc2cde-9735-4cea-b97a-3cd627d3d0a5", "aid": "someAid" } ] } ] } 
  • 我想在aid的基础上取logging。

  • 50record可以有多个对象, licenses也可以有多个对象。

  • 我构build查询为"SELECT * FROM orders o WHERE o['50records'][0].licenses[0].aid='someAid'"
  • 我怎样才能循环这50recordslicenses来search所有可用的对象?

以下是我的商店程序:

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

我在哪里以及如何放置循环?

任何帮助将是可观的!

谢谢

为什么你需要一个循环? 这看起来像一个查询问题。 你可以试试这样的查询:

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

谢谢!