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

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

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

Функция ПолучитьПакетДокументов(Знач Соединение, Знач Коллекция, Знач 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"] Цикл
МассивДокументов.Добавить(Запись);
КонецЦикла;

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