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 のアプローチです。データのサイズが大きくなるにつれて、1 台のマシンではデータを格納したり、許容できる読み取りおよび書き込みスループットを提供したりするには不十分な場合があります。シャーディングは、水平スケーリングの問題を解決します。シャーディングを使用すると、マシンを追加して、データの増加と読み取りおよび書き込み操作の要求をサポートできます。
異なるスケーリング
垂直方向のスケーリングでは、CPU とストレージのリソースを追加して容量を増やします。容量を追加することによるスケーリングには限界があります。多数の CPU と大容量の RAM を備えた高性能システムは、小規模なシステムよりも不釣り合いに高価です。さらに、クラウドベースのプロバイダーは、ユーザーが小規模なインスタンスのプロビジョニングのみを許可する場合があります。その結果、垂直スケーリングの実質的な最大能力が得られます。対照的に、シャーディング (水平スケーリング) は、データ セットを分割し、複数のサーバー (シャード) にデータを分散します。各シャードは独立したデータベースであり、集合的に、シャードは単一の論理データベースを構成します。