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

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

0 ответов

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