我的 Rails 应用程序中有以下代码。
module UserItem
class Rating
include MongoMapper::Document
key :user_id, Integer, :required => true
key :item_id, Integer, :required => true
key :rating, Float, :required => true
end
end
我有大约 10K 用户和 10K 项目,我需要为每个项目存储每个用户的评分,大约 10 ^ 8 条记录。我已将 10^8 条记录的值计算到一个数组中,如下所示
ratings = [
{user_id: 1, item_id: 1, rating: 1.5},
{user_id: 1, item_id: 2, rating: 3.5},
... and so on 10^8 records
]
现在,我需要将计算出的所有这些 10^8 记录插入到 mongo 中。我试过了
UserItem::Rating.collection.insert(ratings)
和
UserItem::Rating.create(ratings)
但是将 10^8 条记录插入 mongo 需要几个小时。有没有更好/更有效的方法将记录插入 mongo?
上下文:我使用它更像是存储所有评级值的缓存存储。当我显示项目列表时,我只会从这个缓存中读取,并在每个项目旁边显示用户提供的评分。
任何帮助深表感谢!