Перейти к основному содержимому

Получить пакет документов

Получает очередной пакет документов курсора

Функция ПолучитьПакетДокументов(Знач Соединение, Знач Коллекция, Знач IDКурсора, Знач База = Неопределено, Знач РазмерПакета = Неопределено, Знач Ожидание = Неопределено) Экспорт

ПараметрCLI опцияТипОбяз.Назначение
Соединение-Строка, ПроизвольныйСоединение или строка подключения
Коллекция-СтрокаИмя коллекции
IDКурсора-ЧислоID курсора
База-СтрокаИмя базы. Текущая база, если не указано
РазмерПакета-ЧислоЧисло записей в пакете
Ожидание-ЧислоМаксимальное время блокировки при awaitData (в мс.)
Возвращаемое значение

Соответствие Из КлючИЗначение - Результат выполнения операции

Предупреждение

NOCLI: данный метод недоступен для использования в CLI версии

Пример использования для 1С:Предприятие/OneScript
Адрес = "127.0.0.1:1234";
Логин = "bayselonarrend";
Пароль = "12we...";
База = "main";

ПараметрыПодключения = Новый Структура("authSource", "admin");
СтрокаПодключения = OPI_MongoDB.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль, ПараметрыПодключения);
Соединение = OPI_MongoDB.ОткрытьСоединение(СтрокаПодключения);

Коллекция = "new_collection";

Фильтр = Новый Структура("stringField", "Текст");
Сортировка = Новый Структура("doubleField", -1);
Параметры = Новый Структура("limit,batchSize", 2, 1);

Курсор = OPI_MongoDB.ПолучитьКурсор(Соединение, Коллекция, База, Фильтр, Сортировка, Параметры);

Если Не Курсор["result"] Тогда
ВызватьИсключение Курсор["error"];
КонецЕсли;

Курсор = Курсор["data"]["cursor"];
МассивДокументов = Курсор["firstBatch"];
IDКурсора = Курсор["id"];
ПродолжатьВыборку = IDКурсора > 0;

Пока ПродолжатьВыборку Цикл

Результат = OPI_MongoDB.ПолучитьПакетДокументов(Соединение, Коллекция, IDКурсора, База); // <---

Если Не Результат["result"] Тогда
ВызватьИсключение Результат["error"];
КонецЕсли;

ПродолжатьВыборку = Результат["data"]["cursor"]["id"] > 0;

Для Каждого Запись Из Результат["data"]["cursor"]["nextBatch"] Цикл
МассивДокументов.Добавить(Запись);
КонецЦикла;

КонецЦикла;
Результат
{
"data": {
"cursor": {
"id": 0,
"nextBatch": [
{
"_id": "6a3436b55ba6fdb43bedde29",
"arrayField": [
"Значение1",
"Значение2"
],
"boolField": true,
"dateField": "2026-06-18T18:19:33Z",
"docField": {
"number": 10,
"text": "Текст"
},
"doubleField": 123.456,
"intField": 200,
"nullField": null,
"stringField": "Текст"
}
],
"ns": "main.new_collection"
},
"ok": 1
},
"result": true
}