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
コメントを書く