MongoDBコレクションのクエリ方法を解説!getCollection()とfind()の基本
MongoDBでコレクションに対してクエリを実行したり、コレクションそのものを取得したりするには、getCollection()メソッドを使用します。この記事では、実際にコレクションを作成し、ドキュメントを挿入したうえで、find()やgetCollection()を使ったデータ取得の基本的な流れを解説します。
1. コレクションの作成とドキュメントの挿入
まず、サンプル用のコレクション「demo294」を作成し、insertOne()を使って3件のドキュメントを挿入します。
> db.demo294.insertOne({"EmployeeId":101,"EmployeeName":"Chris"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e4d4a1a5d93261e4bc9ea36")
}
> db.demo294.insertOne({"EmployeeId":102,"EmployeeName":"Bob"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e4d4a255d93261e4bc9ea37")
}
> db.demo294.insertOne({"EmployeeId":103,"EmployeeName":"David"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e4d4a335d93261e4bc9ea38")
}
2. find()ですべてのドキュメントを表示する
コレクション内のすべてのドキュメントを確認するには、find()メソッドを引数なしで実行します。
> db.demo294.find();
実行すると、以下のように登録済みの全ドキュメントが出力されます。
{ "_id" : ObjectId("5e4d4a1a5d93261e4bc9ea36"), "EmployeeId" : 101, "EmployeeName" : "Chris" }
{ "_id" : ObjectId("5e4d4a255d93261e4bc9ea37"), "EmployeeId" : 102, "EmployeeName" : "Bob" }
{ "_id" : ObjectId("5e4d4a335d93261e4bc9ea38"), "EmployeeId" : 103, "EmployeeName" : "David" }
3. getCollection()を使ってコレクションをクエリする
getCollection()は、コレクション名を文字列で指定してコレクションオブジェクトを取得できるメソッドです。これにより、動的にコレクション名を組み立てたい場合などにも柔軟に対応できます。ここでは、$in演算子を組み合わせて、特定のEmployeeIdを持つドキュメントだけを抽出してみましょう。
> db.getCollection('demo294').find({
... "EmployeeId":{$in:[101,103]}});
このクエリでは、EmployeeIdが101または103に一致するドキュメントのみが返されます。実行結果は次のとおりです。
{ "_id" : ObjectId("5e4d4a1a5d93261e4bc9ea36"), "EmployeeId" : 101, "EmployeeName" : "Chris" }
{ "_id" : ObjectId("5e4d4a335d93261e4bc9ea38"), "EmployeeId" : 103, "EmployeeName" : "David" }
まとめ
MongoDBのコレクション操作は、insertOne()でドキュメントを挿入し、find()で全件取得、さらにgetCollection()と$inなどの演算子を組み合わせることで、柔軟な条件検索が可能になります。特にgetCollection()は、コレクション名を変数として扱いたいシーンで役立つため、覚えておくと便利です。
-
MongoDBでコレクションの名前を変更する方法(renameCollectionの使い方)
MongoDBで既存のコレクションの名前を変更したい場合、renameCollection()メソッドを使用します。この記事では、実際にコレクションを作成し、その名前を変更するまでの手順を順番に解説します。1. ドキュメントを含むコレクションを作成するまず、insertOne()メソッドを使ってサンプルドキュメントを挿入し、コレクション「demo690」を作成します。> db.demo690.insertOne({_id:101,Name:Sam}); { acknowledged : true, insertedId : 101 } > db.demo690.insertOne(
-
MongoDBでSQLのLIKE検索と同じことを実現する方法
MongoDBにおけるLIKE検索の基本SQLの「LIKE」句のように部分一致でデータを検索したい場合、MongoDBでは find() メソッドと正規表現(//)を組み合わせることで同様の処理を実現できます。この記事では、実際にコレクションを作成し、正規表現を使ったLIKE検索の具体的な手順を解説します。テスト用コレクションの作成まず、サンプルとなるドキュメントを含むコレクションを作成しましょう。ここでは「FirstName」というフィールドを持つドキュメントをいくつか登録します。> db.demo686.insertOne({FirstName:Robert});{ &nb