MongoDBコレクションのドキュメントから小文字の値を検索する方法
MongoDBで小文字の値を検索したい場合は、toLowerCase()メソッドを活用します。find()メソッドの中でこのメソッドを使用することで、文字列を小文字に変換した状態で検索を実行できます。
サンプルコレクションの作成
まずは、ドキュメントを含むコレクションを作成しましょう。
> db.demo172.insertOne({"SubjectName":"MySQL"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3838ce9e4f06af551997e1")
}
> db.demo172.insertOne({"SubjectName":"mongodb"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3838d69e4f06af551997e2")
}
> db.demo172.insertOne({"SubjectName":"MongoDB"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3838db9e4f06af551997e3")
}上記のコレクションには、「MySQL」「mongodb」「MongoDB」という3つの異なる表記のドキュメントが登録されています。
登録済みドキュメントの確認
find()メソッドを使って、コレクション内のすべてのドキュメントを表示します。
> db.demo172.find();
実行すると、次のような出力が得られます。
{ "_id" : ObjectId("5e3838ce9e4f06af551997e1"), "SubjectName" : "MySQL" }
{ "_id" : ObjectId("5e3838d69e4f06af551997e2"), "SubjectName" : "mongodb" }
{ "_id" : ObjectId("5e3838db9e4f06af551997e3"), "SubjectName" : "MongoDB" }小文字の値を検索するクエリ
それでは、toLowerCase()メソッドを使って小文字の値を検索してみましょう。大文字で入力した「MONGODB」を小文字に変換して検索します。
> db.demo172.find({"SubjectName":"MONGODB".toLowerCase()});このクエリを実行すると、以下の出力が得られます。
{ "_id" : ObjectId("5e3838d69e4f06af551997e2"), "SubjectName" : "mongodb" }ご覧のとおり、大文字の「MONGODB」をtoLowerCase()メソッドで小文字化することで、完全一致する「mongodb」という値を持つドキュメントのみが取得されました。この手法を使えば、大文字・小文字を意識した正確なデータ検索が可能になります。
-
MongoDBコレクションから$eq演算子に一致するドキュメントを削除する方法
MongoDBコレクションから、$eq演算子で値が一致するドキュメントをremove()メソッドを使って削除する方法を解説します。$eq演算子は、指定したフィールドの値が指定値と等しいドキュメントに一致させるための比較演算子です。サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。 db.demo626.insertOne({id:4,Name:Mike}); { acknowledged : true, insertedId : ObjectId(5e9ac6486c954c74be91e6b1) }コレクション内の全ドキュメントを表示find()メソ
-
MongoDBで特定の値以上のドキュメントを検索する方法($gte演算子の使い方)
MongoDBで特定の値「以上」の値を持つドキュメントを検索したい場合、比較演算子 $gte(greater than or equal)を使用します。$gte は指定した値と等しいか、それより大きい値に一致するドキュメントを抽出できる便利な演算子です。$gteを使った基本構文db.yourCollectionName.find({yourFieldName:{$gte:yourValue}});コレクション名、フィールド名、基準となる値をそれぞれ置き換えて使用します。なお、「より大きい」値のみを取得したい場合は $gt を使いますが、ここでは「以上」を意味する $gte を採用しています。サ