批量插入是否可以在Mongodb中进行验证?
问题描述:
我正在使用Mongoid在表上执行批量插入,其中batch是一个哈希数组:批量插入是否可以在Mongodb中进行验证?
@state = State.new
@state.collection.insert batch
我是否通过这种方式绕过Activerecord?当我尝试验证记录时没有任何反应。
validates_format_of :population, :with => /\d+/
我也在尝试执行回调来格式化数据。
before_validation :generate_population
没有任何反应。
答
我的猜测是肯定的。在Grails驱动程序中,当您使用集合时会发生同样的事情。当你做.collection时,它绕过正常的GORM。看起来像Rails中会发生同样的事情。
解决方法是迭代批处理,并调用rails中存在的任何验证函数。在Grails中你会这样做:new state(it).valid();在Ruby中它可能就像batch.each {| it | State.new(it).valid}
问题是你应该怎么做,如果一个是无效的?
有没有一种解决方法可以批量插入进行验证工作? – 2011-03-27 15:50:45
上面添加了注释 – 2011-03-27 16:09:17