我有一个Client
和一个Group
模型。一个客户有很多组。
class Client
include Mongoid::Document
include Mongoid::Paranoia
include Mongoid::Timestamps
field ...
has_many :groups, dependent: :delete
...
end
class Group
...
belongs_to :client
end
一个客户有40k组,当我尝试时client.groups
,它需要太长时间。我已经等了几分钟,它永远不会结束。
MONGODB (14.2ms) humtl_development['groups'].find({:deleted_at=>nil, "client_id"=>BSON::ObjectId('51b37763218c5a19e0000048')})
MONGODB [DEBUG] cursor.refresh() for cursor 48594378191047181
我在 mongoid 文档中找到了这个。
40k 文件太多了吗?我应该摆脱has_many
关系并embeds_many
改为使用吗?问题是我的mongoid版本?MongoDB配置?任何建议表示赞赏。
当然我不需要显示所有 40k 组,我需要的是User.where(:group_id.in => client.groups.map(&:id))
.
非常感谢。
PS:MongoDB v2.4.3 mongoid v2.7.1 mongo v1.9.2