Pymongo Bulk Удалить

Мне нужно использовать pymongo для массового удаления mongodb. Я получаю поле _id документов, которые мне нужно удалить, с помощью запроса, но я не могу понять, как использовать _id, которые я получаю, чтобы их можно было удалить кусками по 10000.

1 ответ

Решение

Ниже приведен пример неупорядоченных операций массовой записи с использованием текущего PyMongo v3.7.2:

from pymongo import DeleteOne
from pymongo.errors import BulkWriteError

requests = [
        DeleteOne({'_id': 101}),
        DeleteOne({'_id': 102})]
try:
    db.collection.bulk_write(requests, ordered=False)
except BulkWriteError as bwe:
    pprint(bwe.details)

В приведенном выше примере используется unordered операции, потому что неупорядоченные массовые операции пакетируются и отправляются на сервер в произвольном порядке, где они могут выполняться параллельно. О любых возникающих ошибках сообщается после попытки выполнения всех операций. Для получения дополнительной информации см. Также Операции массовой записи PyMongo и Операции массовой записи MongoDB.

Другие вопросы по тегам