2016-05-04 4 views
0

Я использую свое собственное приложение DocumentDB Api (.NET SDK), которое читает из базы данных SQL и выталкивает его в коллекцию. Это используется в приложении Logic.У документацииDDD отсутствует информация

Logic App Workflow: SQLConnector -> JSONEncoder -> DocumentDBApiApp

Если я проверяю последний шаг DocumentDBApiApp он имеет 1663 уникальный идентификатор о том, что пишется в коллекцию.

Но когда я проверяю коллекцию или запрашиваю коллекцию с помощью API Management, я получаю только 505 идентификаторов. Затем я снова вызвал приложение Logic и снова запросил сборку, это было 776 ID и так далее.

Что мне здесь не хватает? У меня много логических приложений, которые строятся одинаково, но они работают нормально.

Редактировать: Sqlconnector использует хранимую процедуру (представление базы данных) для получения данных.

+0

Два вопроса - какова политика индексирования коллекции и как вы запрашиваете коллекцию, портал или SDK? Когда вы запрашиваете, читаете ли вы все результаты путем подкачки через ответы? –

+0

Я не поддался индексированию, поэтому я предполагаю, что он по умолчанию. Я пробовал запросы через портал, коллекцию и api-call в коллекцию. Те же результаты, все дают меньше, чем они должны, и результаты находятся на одной странице. – viktorh

+0

После того, как несколько логических приложений запускаются, коллекция почти совпадает с вводом, но осталось несколько записей. – viktorh

ответ

0

Можете ли вы поделиться кодом, содержащим запрос?

Одна из возможностей состоит в том, что вы можете просматривать только первую страницу набора результатов постраничного запроса. Результаты DocumentDB Разбивать запрос, основанный на нескольких пределах (в зависимости от того поражен первым):

  • размер отклика (1 Мб)
  • RU заряда (на основе Предоставлен пропускной способности)
  • Время отклика (5 сек)

Когда предел поражен, возвращается страница, содержащая все найденное DocumentDB вместе с токеном продолжения. Последующий запрос с использованием токена продолжения будет извлекать следующую страницу результатов.

Продолжение реализовано в SDK посредством запроса, который позволяет выполнять итерацию страниц, используя executeNextAsync(). Вы можете найти здесь пример кода: https://github.com/Azure/azure-documentdb-dotnet/blob/master/samples/code-samples/Queries/Program.cs#L609-L619

+0

Im помощью: Client.UpsertDocumentAsync (currentcollection, документ), идентификатор) для вставки (+ еще какая-то логика) И для запроса, im делает это через API, который получает данные из docDB. Либо Почтальон, либо портал. – viktorh

+0

Для вызовов API REST через почтовый сервер - проверьте заголовки ответов HTTP для заголовка, называемого 'x-ms-continuation'. Значение будет токеном, который будет передан в качестве заголовка для последующего HTTP-запроса для получения следующей страницы результатов. –

+0

Для портала нажмите кнопку «Далее», чтобы увидеть следующую страницу результатов. –

Смежные вопросы