【发布时间】:2015-11-03 11:34:02
【问题描述】:
我已经阅读了批量插入的答案,例如batch insert mongoid
我有 2 个收藏:
class User
include UpdateUserOrCreate
include Mongoid::Document
include Mongoid::Timestamps
has_many :messages, class_name: "Api::V1::Message", autosave: true, validate: false
has_many :message_export_requests, class_name: "Api::V1::MessageExportRequest", autosave: true, validate: false
end
class Message
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user, class_name: "Api::V1::User", autosave: true, foreign_key: :user_id
end
我有一个文档数组:
batch = [{name: "dsfdf" },{name: "dfsdfh"}]
我正在努力:
user.messages.collection.insert(batch)
但结果是Message文档保存为user_id = nil。
如何通过关系批量保存数组中的文档,确保设置了外键??
【问题讨论】:
-
user.messags.collection.insert(batch) 中的消息是什么?
-
@Krish
user.messags是一个错字,应该读作user.messages及其用户和消息之间的 has_many 关系。batch只是一个包含有效文档的文档数组 -
好的,那 user.messages 是用户还是用户对象?你能把详细的日志放在这里吗?
-
user 是 User 的一个实例。 user.messages 是(我想)关系对象。操作
user.messages.collection.insert(batch)的日志是:{"connectionId"=>2, "n"=>0, "syncMillis"=>0, "writtenTo"=>nil, "err"=>nil, "好的"=>1.0}
标签: ruby-on-rails mongodb ruby-on-rails-4 mongoid