Mongo :: Collection undefined方法`insert'

Mik*_*ika 0 mongoid

我正在尝试将数百万行从另一个数据库导入MongoDB.我的常规用于导入

MyModel.collection.insert(data_to_import)
Run Code Online (Sandbox Code Playgroud)

我明白了

NoMethodError: undefined method `insert' for #<Mongo::Collection:0x000000082bb990>
/home/mika/projects/ca2/lib/tasks/data.rake:36:in `block (2 levels) in <top (required)>'
/home/mika/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
/home/mika/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'
Run Code Online (Sandbox Code Playgroud)

该模型定义为

class MyModel
  include Mongoid::Document
  include Mongoid::Attributes::Dynamic

end
Run Code Online (Sandbox Code Playgroud)

有没有人对正在发生的事情有任何建议?

我可以逐行保存行,但这对于数百万行来说效率很低.想要插入工作.

kua*_*osx 6

如果你使用的是mongoid5

MyModel.collection.insert_many(data_to_import)
Run Code Online (Sandbox Code Playgroud)

如果data_to_import是一个数组或

MyModel.collection.insert_on(data_to_import)
Run Code Online (Sandbox Code Playgroud)

如果data_import是单个文档

如果你需要对数据进行valdating,也可以考虑使用MyModel.create ...