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.