JavaでMongoDBコレクションに複数のドキュメントを挿入する方法
MongoDBでは、insertMany()メソッドを使用することで、既存のコレクションに複数のドキュメントを一度に挿入できます。本記事では、シェルからの基本的な操作方法と、Javaプログラムから実行する手順を解説します。
基本構文
db.coll.insert(docArray)
各要素の意味は以下のとおりです。
- db:データベース名
- coll:ドキュメントを挿入するコレクション名
- docArray:挿入したいドキュメントの配列
シェルでの実行例
> use myDatabase
switched to db myDatabase
> db.sampleCollection.insert([{name:"Ram", age:26, city:"Mumbai"}, {name:"Roja", age:28,
city:"Hyderabad"}, {name:"Ramani", age:35, city:"Delhi"}])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
実行結果の「nInserted」が3となっていることから、3件のドキュメントが正常に挿入されたことがわかります。
Javaプログラムでの実装
Javaでは、com.mongodb.client.MongoCollectionインターフェースのinsertMany()メソッドを使うことで、コレクションに複数のドキュメントを挿入できます。このメソッドは、挿入対象のドキュメントを格納したListオブジェクトを引数として受け取ります。
JavaプログラムからMongoDBにドキュメントを挿入するには、以下の手順に従います。
- システムにMongoDBがインストールされていることを確認します。
- Javaプロジェクトのpom.xmlファイルに、次の依存関係を追加します。
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.2</version>
</dependency>
- MongoClientクラスをインスタンス化して、MongoDBクライアントを作成します。
- getDatabase()メソッドを使ってデータベースに接続します。
- 挿入するドキュメントを準備します。
- getCollection()メソッドを使って、挿入先となるコレクションのオブジェクトを取得します。
- 作成したすべてのドキュメントを追加したListオブジェクトを作成します。
- Listオブジェクトを引数として渡し、insertMany()メソッドを呼び出します。
サンプルコード
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
public class InsertingMultipleDocuments {
public static void main( String args[] ) {
// MongoDBクライアントの作成
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// データベースへの接続
MongoDatabase database = mongo.getDatabase("myDatabase");
// コレクションオブジェクトの取得
MongoCollection<Document> collection =
database.getCollection("sampleCollection");
// 挿入するドキュメントの作成
Document document1 = new Document("name", "Ram").append("age", 26).append("city", "Hyderabad");
Document document2 = new Document("name", "Robert").append("age", 27).append("city", "Vishakhapatnam");
Document document3 = new Document("name", "Rhim").append("age", 30).append("city", "Delhi");
// 作成したドキュメントの一括挿入
List<Document> list = new ArrayList<Document>();
list.add(document1);
list.add(document2);
list.add(document3);
collection.insertMany(list);
System.out.println("ドキュメントが挿入されました");
}
}
実行結果
ドキュメントが挿入されました
なお、MongoDBドライバーの新しいバージョン(4.x以降)では、依存関係のartifactIdが「mongodb-driver-sync」に変更されているため、環境に応じて適切なドライバーを選択してください。また、大量のドキュメントを挿入する場合は、insertMany()による一括挿入が個別のinsert()呼び出しよりも効率的です。
-
Javaで単一のJTabbedPaneに複数のタブを挿入する方法
JTabbedPaneとはJTabbedPaneはJComponentクラスを拡張したコンポーネントで、一度に表示できるタブは1つだけです。各タブには1つのコンポーネントが関連付けられており、そのタブが選択されると対応するコンポーネントが表示されます。JTabbedPaneは、タブが選択された際にChangeListenerインターフェースを通じてイベントを発生させることができます。さらに、1つのJTabbedPaneに複数のタブを挿入することも可能です。JTabbedPaneの主なメソッドには、addTab()、fireStateChanged()、getTabPlacement()、set
-
Word文書を別のWord文書に簡単に挿入する方法
Word文書を別のWord文書に直接挿入できることをご存知でしょうか?実は、Microsoft Wordには標準でこの機能が備わっており、難しい操作は一切必要ありません。多くの方は、挿入したい文書を開いて内容をすべて選択し、コピーして別の文書に貼り付けるという方法を使いがちですが、間違いではありません。ただし、文書が長い場合は時間と手間がかかってしまいます。 そこで本記事では、コピー&ペーストよりも効率的な「テキストをファイルから」機能を使った挿入方法を、手順を追って詳しく解説します。 Word文書を別のWord文書に挿入する手順 すでに開いている文書に別の文書を追加するのが最も簡単な方法です