Пакетное обновление временных меток MongoDB - PullRequest
2 голосов
/ 01 июня 2011

У меня есть несколько записей в моей коллекции.И одним из ключей является «available_on», которое является значением даты / времени.Я хочу выполнить пакетное обновление и добавить интервал для всех этих полей.

Требуемое использование похоже на:

coll.update({}, {'$inc': {'available_on': 1 day}}, multi=true)

Я использую pymongo 1.10 и, насколько я понимаю, нет способа предоставитьКод JavaScript для update или find_and_modify.И я могу использовать только модификаторы обновлений.

1 Ответ

0 голосов
/ 01 июня 2011

Я не знал Python API, но вы можете найти запись с JavaScript, используя $ where, например, в JavaScript Shell:

db.collection.find({$where: 'this.field > 3'});

Но учтите, что поиск записи на основе JavaScript может быть медленным. Я думаю, что никакой индекс не может быть использован, и вы в конечном итоге сканирования таблицы.

Более подробную информацию вы найдете в официальной документации: http://www.mongodb.org/display/DOCS/Server-side+Code+Execution

Я думаю, что "нормальный" способ - найти все записи, которые вы хотите изменить. Измените объекты в вашем коде Python и сохраните новые измененные объекты в вашей базе данных.

...