使用一次操作存储一组 mongoid 文档
Storing a collection of mongoid documents with one operation
当使用 Moped
gem 时,我可以存储一个哈希数组:
users = [{username: "ben", password: "123456", type: "admin" }, {username: "joe", password: "abcd1234" }]
Mongoid::Sessions.default["collection"].insert(users)
对于 mongoid 文档,它看起来像:
class User
field :username, type: String
field :password, type: String
end
users.each { |user_hash| User.create(user_hash) }
也就是每一个插入操作。
你知道保持单一操作的方法吗?也许是 ActiveRecord
中的交易?
您可以将文档转换回哈希并通过一次调用 #create
:
插入它们
User.create(users.map(&:attributes))
当使用 Moped
gem 时,我可以存储一个哈希数组:
users = [{username: "ben", password: "123456", type: "admin" }, {username: "joe", password: "abcd1234" }]
Mongoid::Sessions.default["collection"].insert(users)
对于 mongoid 文档,它看起来像:
class User
field :username, type: String
field :password, type: String
end
users.each { |user_hash| User.create(user_hash) }
也就是每一个插入操作。
你知道保持单一操作的方法吗?也许是 ActiveRecord
中的交易?
您可以将文档转换回哈希并通过一次调用 #create
:
User.create(users.map(&:attributes))