【MongoDB】find()メソッドでコレクションから特定の都市のレコードを検索する方法
MongoDBでコレクションから特定の条件に一致するレコードを取得するには、find()メソッドを使用します。本記事では、実際のコード例をもとに、特定の都市のドキュメントを検索する手順をわかりやすく解説します。
サンプルコレクションの作成
まず、insertOne()メソッドを使って、複数のドキュメントを持つコレクション「demo30」を作成しましょう。
> db.demo30.insertOne({"City":"New York"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e174ceccfb11e5c34d898bd")
}
> db.demo30.insertOne({"City":"Los Angeles"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e174d0ecfb11e5c34d898be")
}
> db.demo30.insertOne({"City":"Chicago"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e174d18cfb11e5c34d898bf")
}
> db.demo30.insertOne({"City":"Los Angeles"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e174d1dcfb11e5c34d898c0")
}コレクション内の全ドキュメントを表示する
find()メソッドを引数なしで呼び出すと、コレクション内のすべてのドキュメントを表示できます。
> db.demo30.find();
このクエリを実行すると、以下のような出力が得られます。
{ "_id" : ObjectId("5e174ceccfb11e5c34d898bd"), "City" : "New York" }
{ "_id" : ObjectId("5e174d0ecfb11e5c34d898be"), "City" : "Los Angeles" }
{ "_id" : ObjectId("5e174d18cfb11e5c34d898bf"), "City" : "Chicago" }
{ "_id" : ObjectId("5e174d1dcfb11e5c34d898c0"), "City" : "Los Angeles" }特定の都市を検索するクエリ
特定の都市(ここでは「Chicago」)に一致するドキュメントを検索するには、find()メソッドの引数に検索条件を指定します。
> db.demo30.find({"City":"Chicago"});実行結果は以下の通りです。「City」フィールドが「Chicago」と一致するドキュメントだけが取得できていることがわかります。
{ "_id" : ObjectId("5e174d18cfb11e5c34d898bf"), "City" : "Chicago" }まとめ
find()メソッドに検索条件を渡すことで、コレクションから目的のレコードだけを簡単に取り出せます。なお、条件に一致するドキュメントが複数存在する場合(例:「Los Angeles」)は、該当するすべてのドキュメントが返されます。最初の1件だけを取得したいときは、findOne()メソッドを使うと便利です。
-
MongoDBでコレクションの名前を変更する方法(renameCollectionの使い方)
MongoDBで既存のコレクションの名前を変更したい場合、renameCollection()メソッドを使用します。この記事では、実際にコレクションを作成し、その名前を変更するまでの手順を順番に解説します。1. ドキュメントを含むコレクションを作成するまず、insertOne()メソッドを使ってサンプルドキュメントを挿入し、コレクション「demo690」を作成します。> db.demo690.insertOne({_id:101,Name:Sam}); { acknowledged : true, insertedId : 101 } > db.demo690.insertOne(
-
MongoDBでコレクションから配列フィールド全体を削除するクエリの書き方
MongoDBで配列フィールドを完全に削除するにはMongoDBのコレクションから、ドキュメント内の配列フィールドそのもの(フィールドごと)を取り除きたい場合は、更新演算子の $unset を使用します。$unset は指定したフィールドをドキュメントから削除する演算子で、配列の中身だけを空にするのではなく、フィールド自体が存在しない状態にできます。ここでは、サンプルコレクションを作成して、実際に配列フィールドを削除する手順を見ていきましょう。1. サンプルコレクションの作成まず、insertOne() メソッドを使ってドキュメントを挿入し、テスト用のコレクション demo609 を作成します