如何使用具有不同值

时间:2015-08-08 04:16:24

标签: mongodb mongoid

如何使用数组批量更新mongoDB。

我需要一次更新几十个文件。

我可以批量更新mongoid吗?

我尝试了以下方法,

但它没有用。

我收到此错误NoMethodError: undefined method更新'对于#`

示例代码

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 ...

获取记录

并更改其值然后推入数组。

最后一次更新对象数组。

1 个答案:

答案 0 :(得分:0)

您可以在更新查询语句中使用multi关键字来更新多个文档。

示例:对于特定航班,出发时间已更改。所以你也希望在门票中更改它。你可以像这样使用:

tickets.update( { "id" : "flight_id_to_be_update" }, { "$set" : { "departureTime" : "16:00" } }, { "multi" : true } });