MongoDBの検索結果を配列に格納する方法を解説
MongoDBの検索結果を配列に格納するには?
MongoDBのクエリ結果を配列として扱いたい場合には、toArray()メソッドを使用します。基本的な構文は以下のとおりです。
var anyVariableName = db.yourCollectionName.find().toArray();
find()メソッドの戻り値であるカーソルに対してtoArray()を呼び出すことで、条件に一致したすべてのドキュメントをJavaScriptの配列に変換できます。
サンプルコレクションの作成
まずは、ドキュメントを含むコレクションを作成しましょう。ここでは顧客情報を扱うコレクション「mongoDbResultInArrayDemo」に、insertOne()メソッドで3件のドキュメントを挿入します。
> db.mongoDbResultInArrayDemo.insertOne({"CustomerName":"David Miller","CustomerAge":24,"isMarried":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd99bd5b50a6c6dd317ad92")
}
> db.mongoDbResultInArrayDemo.insertOne({"CustomerName":"Sam Williams","CustomerAge":46,"isMarried":true});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd99beab50a6c6dd317ad93")
}
> db.mongoDbResultInArrayDemo.insertOne({"CustomerName":"Carol Taylor","CustomerAge":23,"isMarried":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd99bf9b50a6c6dd317ad94")
}
find()メソッドで全ドキュメントを表示する
続いて、find()メソッドを使ってコレクション内のすべてのドキュメントを表示してみます。
> db.mongoDbResultInArrayDemo.find().pretty();
このクエリを実行すると、以下のような出力が得られます。
{
"_id" : ObjectId("5cd99bd5b50a6c6dd317ad92"),
"CustomerName" : "David Miller",
"CustomerAge" : 24,
"isMarried" : false
}
{
"_id" : ObjectId("5cd99beab50a6c6dd317ad93"),
"CustomerName" : "Sam Williams",
"CustomerAge" : 46,
"isMarried" : true
}
{
"_id" : ObjectId("5cd99bf9b50a6c6dd317ad94"),
"CustomerName" : "Carol Taylor",
"CustomerAge" : 23,
"isMarried" : false
}
検索結果を配列に格納する方法
MongoDBの検索結果を配列に保存するには、以下のようにクエリを記述します。
> var mongoDbResultIntoArray=db.mongoDbResultInArrayDemo.find().toArray();
変数に格納されたレコードを表示して確認してみましょう。
> mongoDbResultIntoArray
実行すると、すべてのドキュメントが配列形式で出力されます。
[
{
"_id" : ObjectId("5cd99bd5b50a6c6dd317ad92"),
"CustomerName" : "David Miller",
"CustomerAge" : 24,
"isMarried" : false
},
{
"_id" : ObjectId("5cd99beab50a6c6dd317ad93"),
"CustomerName" : "Sam Williams",
"CustomerAge" : 46,
"isMarried" : true
},
{
"_id" : ObjectId("5cd99bf9b50a6c6dd317ad94"),
"CustomerName" : "Carol Taylor",
"CustomerAge" : 23,
"isMarried" : false
}
]
まとめ
find()メソッドのカーソルに対してtoArray()メソッドを呼び出すだけで、MongoDBの検索結果を簡単に配列として取得できます。取得した配列は、JavaScriptやNode.jsアプリケーションでのループ処理・フィルタリング・データ整形など、さまざまな場面で活用できるため、覚えておくと非常に便利です。
-
MongoDBで配列の共通部分(交差)データを取得する方法
MongoDBで配列の共通部分を取得するには?MongoDBで配列同士の共通要素(交差)を求めたい場合、集計パイプラインである aggregate() 内で $setIntersection 演算子を使用します。この演算子は、指定した複数の配列に共通して含まれる要素だけを抽出し、重複を除いた配列として返してくれます。それでは、実際にドキュメントを含むコレクションを作成しながら確認していきましょう。1. サンプルコレクションの作成> db.demo625.insertOne( ... { ... Name: "John", ... M
-
MongoDBで配列の要素を削除するには?$pull演算子の使い方を解説
MongoDBで配列から要素を削除する基本MongoDBで配列内の要素を削除したい場合は、$pull演算子を使用します。$pullは、既存の配列から指定した値、または条件に一致するすべてのインスタンスを取り除くための更新演算子です。この記事では、実際にコレクションを作成し、ネストされた配列から特定の要素を削除する手順を順番に解説します。サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。ここでは「software」フィールドの中に「services」という配列を持つドキュメントを挿入します。db.demo541.insertOne({software:{servic