mongoDB ドキュメント(レコード)を検索する
mongoDBで、ドキュメント(レコード)を検索する手順を記述してます。「find()」を使用します。mongoDB6の場合は、実行すると自動的に整形されて出力されるようになってます。
環境
- OS CentOS Stream release 9
- MongoDB 6.0.2
手順
ドキュメント(レコード)を検索するには、「db.コレクション名.find()」を使用します。
db.コレクション名.find()
実際に、「foo」というコレクションのドキュメント(レコード)を検索してみます。
> db.foo.find()
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b8"),
name: 'jiro',
age: 20,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1b9"),
name: 'saburo',
age: 30,
gender: 'm'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1ba"),
name: 'jiro',
age: 25,
gender: 'f'
},
{
_id: ObjectId("6364ae7f06a29c57f191d1bb"),
name: 'jiro',
age: 30,
gender: 'x'
}
]
全てのドキュメントが検索されていることが確認できます。
条件を指定
条件を指定して検索してみます。
名前が「jiro」のものを検索するには、以下のようにします。
> db.foo.find( {name:'jiro'} )
[
{
_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'
}
]
ageが20未満のものだけ抽出します。
> db.foo.find( { age:{$lt:20} } )
[
{
_id: ObjectId("6364ae7f06a29c57f191d1b7"),
name: 'itiro',
age: 10,
gender: 'm'
}
指定できる条件は以下のようになります。
演算子 | Mongo演算子 | 内容 | 例 |
---|---|---|---|
< | $lt | 右辺より小さい | { age:{$lt:20} } |
<= | $lte | 右辺以下 | { age:{$lte:20} } |
> | $gt | 右辺より大きい | { age:{$gt:20} } |
>= | $gte | 右辺以上 | { age:{$gte:20} } |
!= | $ne | 等しくない | { name:{$ne:’jiro’} } |
AND | なし | and条件 | {name:’jiro’, age: 20} |
OR | $or | or条件 | db.コレクション名.find({$or:[{age:20},{age:30]}) |
「MongoDB Compass」から検索
「MongoDB Compass」 から検索する場合は、
対象の「コレクション」を選択して「FILTER」に同様に条件を入力して「FIND」をクリックします。
-
前の記事
コマンドプロンプト サイズをコマンドで変更する 2022.09.13
-
次の記事
sakuraエディタ 単語単位で削除するショートカットキー 2022.09.13
コメントを書く