【发布时间】:2015-08-08 04:16:24
【问题描述】:
如何使用数组批量更新 mongoDB。
我需要一次更新大约几十万个文档。
我可以用 mongoid 批量更新吗?
我尝试了以下方法,
但它没有用。
我收到了这个错误NoMethodError: undefined methodupdate' #`
示例代码
tickets = [100,000 items]
updated_flights = []
tickets.each do |tik|
@flight = Flight.find_or_create_by(id: id, from: tik.from, to: tik.to)
@flight = DO_SOMETHING
updated_flights << @flight
end
Flight.collection.update(updated_flights)
每个文档都有不同的值需要更新
通知
我想通过Flight.find_or_create_by ...获取记录,
改变它的值,然后压入数组。
最后一次更新对象数组。
【问题讨论】:
-
这确实有点模糊。您要更新什么样的信息?要更新的信息从哪里来?它是您正在处理的列表还是静态值?您说不想查找或创建文档。那么 id 值来自哪里?是否也在该列表或其他列表中。如果你希望得到你想要的正确答案,你需要清楚地解释你想要做什么。