Mongoid миграция обновления полей из строки в метку времени без использования моделей
Я хочу обновить поле коллекции, которое на самом деле имеет строковое представление даты, и изменить его на ISODate.
У меня уже есть решение, но оно неэффективно:
class MoveTimestampsFromStringToTimestamp < Mongoid::Migration
def self.up
self[:stats].find({"timestamp"=>{"$type"=>2}}).each do |stat|
stat["timestamp"] = DateTime.parse(stat["timestamp"])
self[:stats].find({_id: stat["_id"]}).update({"$set" => stat})
end
end
end
Я хотел бы обновить его за одну операцию вместо поиска и обновления для каждой записи.