Как использовать Loop для выполнения процедуры хранения в Cosmos-DB / Document-DB?

1

У меня JSON нравится

{
  "id": "58d99ca3231f13b9ecbbbca4",
  "50records": [
    {
      "aomsLineNbr": 1,
      "licenses": [
        {
          "productKey": "84fc2cde-9735-4cea-b97a-3cd627d3d0a5",
          "aid": "someAid"   
        }
      ]
    }
  ]
}
  • Я хочу получить отчет на основе aid.

  • 50record может иметь несколько объектов, а licenses могут также иметь несколько объектов.

  • Я задаю запрос как "SELECT * FROM orders o WHERE o['50records'][0].licenses[0].aid='someAid'"
  • как я могу 50records эти 50records и licenses на поиск aid во всех доступных объектах?

Ниже приведена моя процедура магазина:

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


}

Где и как мне нужно поставить петлю?

Любая помощь будет заметна!

Спасибо

Теги:
azure-cosmosdb
loops

1 ответ

3
Лучший ответ

зачем вам цикл? Это похоже на вопрос запроса. Вы можете попробовать такой запрос:

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

Спасибо!

  • 0
    Спасибо: работал для меня +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню