複数のドキュメントの挿入
MongoCollection
オブジェクトで insertMany()
メソッドを呼び出すと、1 回の操作で複数のドキュメントをコレクションに挿入できます。 これらを挿入するには、 Document
オブジェクトをList
に追加し、そのList
を引数としてinsertMany()
に渡します。 まだ存在しないコレクションに対してinsertMany()
メソッドを呼び出すと、サーバーによってコレクションが作成されます。
挿入に成功すると、 insertMany()
はInsertManyResult
のインスタンスを返します。 InsertManyResult
インスタンスでgetInsertedIds()
メソッドを呼び出すと、挿入したドキュメントの_id
フィールドなどの情報を検索できます。
挿入操作が失敗した場合、ドライバーは例外を発生させます。 特定の条件で発生する例外の種類の詳細については、このページの下部にリンクしているinsertMany()
の API ドキュメントを参照してください。
例
次のスニペットは、複数のドキュメントをmovies
コレクションに挿入します。
注意
この例では、接続 URI を使用して MongoDB のインスタンスに接続します。 MongoDB インスタンスへの接続の詳細については、「 接続ガイド 」を参照してください。
// Inserts sample documents describing movies by using the Java driver package usage.examples; import java.util.Arrays; import java.util.List; import org.bson.Document; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.InsertManyResult; public class InsertMany { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); // Creates two sample documents containing a "title" field List<Document> movieList = Arrays.asList( new Document().append("title", "Short Circuit 3"), new Document().append("title", "The Lego Frozen Movie")); try { // Inserts sample documents describing movies into the collection InsertManyResult result = collection.insertMany(movieList); // Prints the IDs of the inserted documents System.out.println("Inserted document ids: " + result.getInsertedIds()); // Prints a message if any exceptions occur during the operation } catch (MongoException me) { System.err.println("Unable to insert due to an error: " + me); } } } }
例を実行すると、挿入されたドキュメントのObjectId
値が各値フィールドに含まれた次のような出力が表示されます。
Inserted document ids: {0=BsonObjectId{value=...}, 1=BsonObjectId{value=...}}
このページで言及されているクラスとメソッドについて詳しくは、次の API ドキュメントを参照してください。