您可以尝试使用 mongoid gem
batch = [{_id: BSON::ObjectId('5671329e4368725951010000'), name: "foo"}, {_id: BSON::ObjectId('567132c94368725951020000'), name: "bar"}]
Post.collection.insert(batch) #lest Post is the model
或者你可以通过Ruby MongoDb Driver
require 'mongo'
mongo_client = Mongo::MongoClient.new
coll = mongo_client['test_db']['test_collection']
bulk = coll.initialize_ordered_bulk_op
batch.each do |hash|
bulk.insert(hash)
end
bulk.execute
如果你想通过 mongo 查询以同样的方式。您可以关注批量插入
对于增加数据,您可以使用分片和
分片是跨多台机器存储数据记录的过程,是 MongoDB 满足数据增长需求的方法。随着数据大小的增加,单台机器可能不足以存储数据,也无法提供可接受的读写吞吐量。分片解决了水平缩放的问题。通过分片,您可以添加更多机器来支持数据增长和读写操作的需求。
不同的缩放比例
垂直扩展添加更多 CPU 和存储资源以增加容量。通过增加容量进行扩展具有局限性:具有大量 CPU 和大量 RAM 的高性能系统比小型系统更昂贵。此外,基于云的提供商可能只允许用户配置较小的实例。因此,垂直缩放具有实际的最大能力。相比之下,分片或水平扩展将数据集划分并将数据分布在多个服务器或分片上。每个分片都是一个独立的数据库,这些分片共同构成一个逻辑数据库。