pymongo.cursor.
CursorType
Тип курсора
NON_TAILABLE
стандартный курсор
TAILABLE
курсор сохрянющий свою позицию
Такое курсор не закрывается после получения послдених данных и могут вернуть новые данные с последней позиции
TAILABLE_AWAIT
курсор сохраняющий свою позицию
Курсор будет ждать в течении нескольких секунд после возвращения полного набора результата, поэтому он может вернуть доп добавленные данные в течении запроса
EXHAUST
потоковый курсор
БД будет возвращать данные клиенту, не дожидаясь от него результата чтения предыдущих данных
pymongo.cursor.
Cursor
(**kwargs)Курсор
Не должен создаваться через данный класс, а необходимо использовать курсор результата запросов
collection -
filter=None -
projection=None -
skip=0 -
limit=0 -
no_cursor_timeout=False -
cursor_type=CursorType.NON_TAILABLE -
sort=None -
allow_partial_results=False -
oplog_replay=False -
modifiers=None -
manipulate=True -
>>> db.test.find()[50]
>>> db.test.find()[20:50]
address
Адрес БД
alive
Может ли курсор вернуть ещё данные.
Даже если и может, то вызов метода next() может возбудить исключение StopIteration
Актуально для курсоров tailable курсоров
collection
:py:class::pymongo.collection.Collection коллекция курсора
cursor_id
Идентификатор курсора
retrivied
Количесвто пуже полученных документов
add_option
(mask)Установить флаг запроса, используя битовую маску
>>> # tailable флаг
>>> cursor.add_option(2)
batch_size
(batch_size)Установить количесвто документов, возвращаемых курсором за раз.
Note
БД имеет ограниче на размер возвращаемой порции курсору, она будет приоритетнее чем количесвто записей в порции.
Например если установить размер порции в 1,000,000 документов, вернется то количесвто документов, которое уместится в 4-16Мб.
clone
()Возвращает новый курсор, копия текущего курсора
close
()Закрывает/убивает курсор. Требуется только для PyPy, Jython и других питон интерпретаторов не использующих сборщик мусора.
comment
(comment)Добаляет коментарии к курсору
count
(with_limit_and_skip=False)Возвращает размер текущего запроса, количество документов
with_limit_and_skip=False - учитывать ограничения
Возбуждает:
:py:class::pymongo.errors.OperationFailure
distinct
(key)Возвращает список уникальных данных по ключю
explain
()Возвращает план запроса курсора
hint
(index)Добавляет “подсказку” для БД, какой индекс использовать
>>> cur.hint([('field', ASCENDING)])
>>> cur.hint('index_name')
limit
(limit)Ограничивает количесвто возвращаемых данных курсором
Возбуждает:
:py:class::pymongo.errors.InvalidOperation
max
(spec)Добавляет оператор максимума, который определяет максимальную границу индекса
max_scan
(max_scan)Огрничивает количесвто сканируемых документов
Возбуждает:
:py:class::pymongo.errors.InvalidOperation
max_time_ms
(max_time_ms)Задает время для выполнения запроса
Возбуждает:
:py:class::pymongo.errors.InvalidOperation
min
(spec)Добавляет оператор минимума, который определяет минимуальную границу индекса
next
()Передвигает курсор на след позицию
remove_option
(mask)Удаляет флаги запроса, используя битовую маску
rewind
()Сбросить курсор
skip
(skip)Пропустить первые указанные количесвто документов
Возбуждает:
:py:class::pymongo.errors.InvalidOperation
sort
(key_or_list, direction=None)Сортировка результата запроса
Возбуждает:
:py:class::pymongo.errors.InvalidOperation
>>> for doc in collection.find().sort('field', pymongo.ASCENDING):
... print(doc)
>>> for doc in collection.find().sort([
... ('field1', pymongo.ASCENDING),
... ('field2', pymongo.DESCENDING)]):
... print(doc)
>>> cursor = db.test.find(
... {'$text': {'$search': 'some words'}},
... {'score': {'$meta': 'textScore'}})
>>> # Sort by 'score' field.
>>> cursor.sort([('score', {'$meta': 'textScore'})])
>>> for doc in cursor:
... print(doc)
where
(code)Добавляет условие в курсор
code - JS функция
Возбуждает:
:py:class::pymongo.errors.InvalidOperation