MongoDBでforループを使用して値をプッシュ(挿入)する方法
MongoDBでforループを使用して値をプッシュ(挿入)する方法
MongoDBで値を繰り返しコレクションへ挿入(プッシュ)したい場合、save()メソッドとforループを組み合わせることで簡単に実現できます。ここでは、実際のコード例を交えながら手順を解説します。
1. forループでドキュメントを作成する
まず、forループを使ってコレクションにドキュメントを作成します。以下の例では、ループを6回まわして同じ内容のドキュメントを保存しています。
> for(var v=1; v<7; v++) {
... db.demo739.save({Name:"Chris",SubjectName:"MongoDB"});
... }
WriteResult({ "nInserted" : 1 })このコードでは、変数 v が1から6になるまでインクリメントされながら db.demo739.save() を実行し、「Name: Chris」「SubjectName: MongoDB」というフィールドを持つドキュメントを6件挿入しています。実行結果として返される WriteResult({ "nInserted" : 1 }) は、書き込み操作が正常に完了したことを示します。
2. find()メソッドですべてのドキュメントを表示する
挿入したドキュメントを確認するには、find()メソッドを使用します。
> db.demo739.find();
上記のコマンドを実行すると、以下のような出力が得られます。
{ "_id" : ObjectId("5ead6e7857bb72a10bcf0666"), "Name" : "Chris", "SubjectName" : "MongoDB" }
{ "_id" : ObjectId("5ead6e7857bb72a10bcf0667"), "Name" : "Chris", "SubjectName" : "MongoDB" }
{ "_id" : ObjectId("5ead6e7857bb72a10bcf0668"), "Name" : "Chris", "SubjectName" : "MongoDB" }
{ "_id" : ObjectId("5ead6e7857bb72a10bcf0669"), "Name" : "Chris", "SubjectName" : "MongoDB" }
{ "_id" : ObjectId("5ead6e7857bb72a10bcf066a"), "Name" : "Chris", "SubjectName" : "MongoDB" }
{ "_id" : ObjectId("5ead6e7857bb72a10bcf066b"), "Name" : "Chris", "SubjectName" : "MongoDB" }出力を見ると、6件すべてのドキュメントがそれぞれ異なる自動生成ID(ObjectId)を持っていることがわかります。これにより、ループ内で毎回新しいドキュメントとして登録されていることが確認できます。
補足:より効率的な一括挿入にはinsertMany()が便利
大量のドキュメントを挿入する場合は、insertMany()メソッドの使用を検討しましょう。ループ内で個別にsave()を呼び出す方式では、挿入ごとにデータベースへの書き込みが発生しますが、insertMany()なら複数のドキュメントを一括で登録でき、パフォーマンス面で大きなメリットがあります。
> var docs = [];
> for(var v=0; v<6; v++) {
... docs.push({Name:"Chris", SubjectName:"MongoDB"});
... }
> db.demo739.insertMany(docs);
このように、forループで配列にドキュメントを組み立ててから一括挿入することで、処理速度の向上とネットワーク負荷の軽減が期待できます。
-
MongoDBでforEach()を使って特定の学生の点数を更新する方法
MongoDBでforEach()を使ってドキュメント内の点数を更新するこの記事では、forEach()メソッドを使ってコレクション内のドキュメントを走査し、学生名が「David」のドキュメントを見つけて、その学生の点数(Marks)を新しい値に更新する方法を解説します。1. コレクションとドキュメントを作成するまず、insertOne()メソッドを使ってサンプル用のコレクションにドキュメントを作成しましょう。> db.demo634.insertOne({Name:Chris,Marks:76}); { acknowledged : true, insertedId :
-
MongoDBで範囲検索を行う方法:sort()とlimit()の組み合わせ
MongoDBで範囲検索を行う方法MongoDBで範囲検索(特定の値以下・以上のドキュメントを取得する検索)を行うには、比較演算子とsort()、limit()を組み合わせて使用します。ここでは、実際のサンプルコードを使いながら手順を詳しく解説します。1. サンプルコレクションの作成まず、insertOne()メソッドを使って、ドキュメントを含むコレクションを作成しましょう。> db.demo665.insertOne({"Value":10}); { "acknowledged" : true, "insertedId&qu