Mongoid:通过一次调用创建多个对象

min*_*eow 6 ruby-on-rails mongodb mongoid

我有1000个用户,我将从Twitter检索,我想一次保存它们,而不是单独进行1000次插入.

我怎么能在Mongoid上做到这一点?像这样的东西会摇滚:

TwitterUser.createMany([{:name=>u1}, {:name=>u2},{:name=>u3}] )
Run Code Online (Sandbox Code Playgroud)

bow*_*ior 7

您应该使用Mongo ruby​​驱动程序来执行此操作.您可以将一系列哈希值传递给该insert方法,以便一次创建多个文档(有关此Google论坛讨论的更多信息).Mongoid可以轻松访问ruby驱动程序.

代码看起来像这样:

user_list = twitter_accounts.map do |account|
  # create a hash of all the fields to be stored in each document
  { 'name' => account.name, 
    'username' => account.username 
    # some other fields...
  }
end

Mongoid.master['twitter_users'].insert(user_list)
Run Code Online (Sandbox Code Playgroud)