Можно ли создать агрегирование в Pymongo без таймаута для курсора?
Агрегация выглядит так:
res = Things.objects._collection.aggregate(pipeline,
allowDiskUse=True,
batchSize=101,
noCursorTimeout=True
)
и терпит неудачу с
OperationFailure: нераспознанное поле noCursorTimeout
Из документации Pymongo явствует, что no_cursor_timeout может использоваться с find (), однако мне не удалось найти сопоставимые ** kwargs для aggregate ().
Я не хочу использовать setParameter или maxTimeMS.
ОБНОВИТЬ:
С сайта Jira MongoDB:SERVER-15042
Бит NoCursorTimeout в заголовке OP_QUERY не позволяет серверу закрывать курсор, который простаивает более 10 минут. Клиенты могут установить этот бит, если они могут потратить более 10 минут на обработку пакета результатов.
Команды «aggregate» и «parallelCollectionScan» должны также позволять клиенту отключать тайм-ауты курсора.
Ответ на этот билет был:
Мы намеренно не поддерживаем noCursorTimeout. Обоснование необходимости в этом исчезнет, когда мы реализуем keepalive курсора. Эта работа будет отслеживаться в SERVER-6036.
Смотря наSERVER-6036:
Обновлено: 14 сентября 2016 г., 03:53:05 GMT + 0000Статус: ОТКРЫТРазрешение: нерешеноFix Version / s: запланировано, но не запланированоЕсли я правильно прочитал документы, у агрегата пока нет опции тайм-аута для агрегата ().