Записи запросов к нескольким коллекциям в Azure Cosmos - PullRequest
0 голосов
/ 25 апреля 2019

Можно ли запрашивать записи из нескольких коллекций в Azure Cosmos с помощью API-интерфейса SQL Rest?

Замечу, что я использую jupitern / cosmosdb , который является просто удобной оболочкой для SQL Rest API. Я не смог найти никакой документации на веб-сайте Microsoft, указывающей, что это возможно, но я надеюсь, что кто-то в сообществе может знать по-другому.

Я понимаю, что мой единственный курс здесь - это запрашивать одну коллекцию за раз и собирать результаты с моей стороны, основываясь на том факте, что документация Query Documents демонстрирует, что для URI требуется конкретный идентификатор коллекции в качестве параметра:

https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs

Вот пример того, как я в данный момент запрашиваю Cosmos, используя эту библиотеку-обертку:

# connect to cosmos
$conn = new Cosmos(AZURE_COSMOS_HOST, AZURE_COSMOS_KEY);
$conn->setHttpClientOptions(['verify' => false]);
$db = $conn->selectDB("Example");
$coll = $db->selectCollection("Test");

# query records
try {
    $res = Query::instance()
        ->setCollection($coll)
        ->select("*")
        ->findAll()
        ->toArray();

} catch (Exception $e) {
    return $response->withJson($e->getMessage());
}

1 Ответ

1 голос
/ 25 апреля 2019

Можно ли запрашивать записи из нескольких коллекций в Azure Cosmos с помощью API-интерфейса SQL Rest?

Простой ответ на ваш вопрос - нет.Невозможно запрашивать записи в нескольких коллекциях.Вам нужно будет выдавать отдельные запросы для каждой коллекции в отдельности и работать с результатами на стороне клиента.

...