Возможна ли проверка в БД Mongo на пакетной вставке? - PullRequest
1 голос
/ 27 марта 2011

Я выполняю пакетную вставку в таблицу, используя Mongoid, где пакетная обработка представляет собой массив хэшей:

@state = State.new
@state.collection.insert batch

Я обхожу Activerecord, делая это таким образом? Когда я пытаюсь проверить запись, ничего не происходит.

validates_format_of :population, :with => /\d+/

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

before_validation :generate_population

И ничего не происходит.

Ответы [ 2 ]

2 голосов
/ 27 марта 2011

Я думаю, да. В драйвере Grails то же самое происходит, когда вы используете коллекцию. Он обходит нормальный GORM, когда вы делаете .collection. Похоже, то же самое произошло бы в Rails.

Обходной путь - перебирать пакет и вызывать любую функцию проверки, существующую в рельсах. В Grails вы бы сделали: new State (it) .valid (); в Ruby это, вероятно, что-то вроде batch.each {| it | State.new (it) .valid}

Тогда возникает вопрос: что делать, если кто-то недействителен?

0 голосов
/ 31 марта 2011

Самый эффективный способ отформатировать хэш данных?

Вот так я и решил эту проблему. В вопросе, который я связал, я указываю функции форматирования, но туда можно добавить и функцию проверки.

...