批量插入是否可以在Mongodb中进行验证?

时间:2011-03-27 15:42:48

标签: ruby mongodb mongoid

我正在使用Mongoid在表上执行批量插入,其中batch是一个哈希数组:

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

我是否通过这种方式绕过Activerecord?当我尝试验证记录时没有任何反应。

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

我也在尝试执行回调来格式化数据。

before_validation :generate_population

没有任何反应。

2 个答案:

答案 0 :(得分:2)

我的猜测是肯定的。在Grails驱动程序中,使用集合时会发生同样的事情。当你执行.collection时,它会绕过正常的GORM。好像在Rails中会发生同样的事情。

解决方法是遍历批处理并调用rails中存在的任何验证函数。在Grails中你会做:new State(it).valid();在Ruby中,它可能类似于batch.each {| it | State.new(it).valid}

问题是,如果一个人无效,你该怎么办?

答案 1 :(得分:0)

Most efficient way to format a hash of data?

这就是我最终处理这个问题的方法。我在链接的问题中指定了格式化函数,但也可以在那里添加验证功能。