2010-06-29 2 views
10

Согласно PyMongo docs, update() может обновлять только один документ за раз. Скажем, у меня есть 100 документов, которые я хочу обновить одновременно. Это накладные расходы. Есть ли способ обновить несколько документов с помощью одного запроса MongoDB через PyMongo?Несколько одновременных обновлений с MongoDB/PyMongo?

ответ

14

На самом деле, вы можете обновить несколько документы с несколькими опции:

collection.update(spec, doc, multi=True) 

Это обновит все матчи.

+0

Извините, не могли бы вы уточнить? Скажем, что я вытаскиваю 10 объектов из базы данных, каждая с уникальным '_id', и я меняю одно поле в каждом. Как я могу поместить эти изменения в базу данных? Бонусные баллы за простоту и эффективность запросов. –

+0

Являются ли каждый из изменений разными? Если это так, вам придется делать отдельные обновления. Вы не можете их продавать, но я сомневаюсь, что неспособность отправить их вместе является узким местом. – kristina

+0

А, я вижу. Благодарю. –

1

вы можете обновить несколько документов с различной _id в то время, с помощью объемной функции записи доступны в MongoDB 2,6 попробовать этот http://api.mongodb.org/python/current/examples/bulk.html

в точных вы можете использовать Заказанный Bulk операцию записи, которые обновляют основную часть записей, которые являются с разные критерии.

для получения более подробной информации Best way to read and update mongodb documents using pymongo

Смежные вопросы