MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのfindOne()で正規表現($regex)を使う方法

MongoDBのfindOne()メソッドは、コレクションに対して指定したクエリ条件を満たすドキュメントを1件だけ返します。条件に合致する最初のドキュメントのみが必要な場合に便利なメソッドです。

この記事では、findOne()と正規表現($regex)を組み合わせて使う方法を、実際のコード例とともに解説します。

サンプルコレクションの作成

まずは、ドキュメントを含むコレクションを作成しましょう。insertOne()メソッドを使って、3つのドキュメントを登録します。

> db.demo655.insertOne({subject:"MySQL"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea050254deddd72997713cc")
}
> db.demo655.insertOne({subject:"MongoDB"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea0502b4deddd72997713cd")
}
> db.demo655.insertOne({subject:"Java"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea050314deddd72997713ce")
}

これで「MySQL」「MongoDB」「Java」というsubjectフィールドを持つ3件のドキュメントが登録されました。

登録済みドキュメントの確認

find()メソッドを使って、コレクション内のすべてのドキュメントを表示してみます。

> db.demo655.find();

上記のクエリを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5ea050254deddd72997713cc"), "subject" : "MySQL" }
{ "_id" : ObjectId("5ea0502b4deddd72997713cd"), "subject" : "MongoDB" }
{ "_id" : ObjectId("5ea050314deddd72997713ce"), "subject" : "Java" }

findOne()で正規表現を使うクエリ

findOne()で正規表現を使用するには、$regex演算子を利用します。以下の例では、subjectフィールドに「M」を含むドキュメントを検索しています。

> db.demo655.findOne({subject:{$regex:/M/}});

実行すると、条件に一致する最初の1件だけが返されます。

{ "_id" : ObjectId("5ea050254deddd72997713cc"), "subject" : "MySQL" }

ポイントのまとめ

  • findOne():条件に合致するドキュメントのうち、最初の1件のみを返す
  • $regex演算子:フィールド値をパターンマッチングで検索できる
  • 「MySQL」と「MongoDB」の両方が「M」を含みますが、findOne()は挿入順に最初に見つかった「MySQL」のみを返します

すべてのマッチするドキュメントを取得したい場合は、find()メソッドに同じ正規表現条件を指定してください。

  1. MongoDBで複数のドキュメントをアトミックに一括更新する方法

    MongoDBでは、update()メソッドに更新演算子の$setを組み合わせることで、条件に一致した複数のドキュメントをまとめてアトミックに更新できます。本記事では、サンプルコレクションを使いながら、その具体的な手順を解説します。 1. サンプルコレクションの作成 まず、insertOne()メソッドを使ってドキュメントを含むコレクションを作成します。 > db.demo699.insertOne({Name:Chris Brown}); { acknowledged : true, insertedId : ObjectId(5ea6e370551299a9f98c93a

  2. MongoDBのupdateOne()とinsertOne()の違いと使い方を実例で解説

    MongoDBには、コレクションへのドキュメント追加や更新を行うための便利なメソッドが多数用意されています。本記事では、その中でも特によく使われる insertOne() と updateOne() の役割の違いと具体的な使い方を、実際のコード例とともにわかりやすく解説します。insertOne():コレクションに新しいドキュメントを1件挿入するメソッドです。updateOne():クエリフィルタ(検索条件)に一致したドキュメントのうち、最初の1件のみを更新するメソッドです。insertOne()でサンプルコレクションを作成するまずは insertOne() を使って、サンプル用のコレクション