mongoDB likeを使用する

mongoDBで、likeを使用する手順を記述してます。リレーショナルデータベースのように前方一致と後方一致も指定することができます。
環境
- OS Ubuntu 20.04
- MongoDB 5.0.5
手順
likeを使用するには、「db.コレクション名.find({ “プロパティ名:/値/”} )」を使用します。
※以下は部分一致となります。前方一致と後方一致は後述してます。
db.コレクション名.find( {"プロパティ名:/値/"} )
実際に、以下のデータベース「hoge」にある「foo」というコレクション(テーブル)のドキュメント(レコード)を使用して、likeを使用して表示してみます。
> use hoge
> db.foo.find()
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
},
{
test> db.foo.find({age:{$in:[20,25]}})
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b8"),
name: 'jiro',
age: 20,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1ba"),
name: 'jiro',
age: 25,
gender: 'f'
}
]
「name」に「i」が含まれる部分一致で表示してみます。
> db.foo.find({name:/i/})
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b8"),
name: 'jiro',
age: 20,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1ba"),
name: 'jiro',
age: 25,
gender: 'f'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1bb"),
name: 'jiro',
age: 30,
gender: 'x'
}
]
部分一致で実行されていることが、確認できます。
前方一致
前方一致を実行する場合は、以下のようにします。
db.コレクション名.find({ "プロパティ名:/^値/" })
実行してみます。
> db.foo.find({name:/^i/})
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
}
]
後方一致
後方一致を実行する場合は、以下のようにします。
db.コレクション名.find({ "プロパティ名:/値$/" })
実行してみます。
> db.foo.find({name:/iro$/})
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b8"),
name: 'jiro',
age: 20,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1ba"),
name: 'jiro',
age: 25,
gender: 'f'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1bb"),
name: 'jiro',
age: 30,
gender: 'x'
}
]
-
前の記事
javascript エラー「Uncaught TypeError: xxx.replaceAll is not a function」の解決方法 2022.11.12
-
次の記事
GAS 入力補完を開くショートカットキー 2022.11.12
コメントを書く