mongoDB ドキュメント(レコード)を検索する

mongoDB ドキュメント(レコード)を検索する

mongoDBで、ドキュメント(レコード)を検索する手順を記述してます。

環境

  • OS Ubuntu 20.04
  • MongoDB 5.0.4

手順

ドキュメント(レコード)を検索するには、「db.コレクション名.find()」を使用します。

db.コレクション名.find()

実際に、「foo」というコレクションのドキュメント(レコード)を検索してみます。

> db.foo.find()

{ "_id" : ObjectId("61ad8a5a6b99b585a9389a04"), "name" : "itiro", "age" : 10, "gender" : "m" }
{ "_id" : ObjectId("61ad8a666b99b585a9389a05"), "name" : "jiro", "age" : 20, "gender" : "m" }
{ "_id" : ObjectId("61ad8a746b99b585a9389a06"), "name" : "saburo", "age" : 30, "gender" : "m" }

全てのドキュメントが検索されていることが確認できます。

条件を指定

条件を指定して検索してみます。

名前が「jiro」のものを検索するには、以下のようにします。

db.foo.find( {name:'jiro'} )

ageが20未満のものだけ抽出します。

> db.foo.find( { age:{$lt:20} } )

{ "_id" : ObjectId("61ad93886b99b585a9389a07"), "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$oror条件db.コレクション名.find({$or:[{age:20},{age:30]})

「MongoDB Compass」から追加

「MongoDB Compass」 から追加する場合は、
対象の「コレクション」を選択して「FILTER」に同様に条件を入力して「FIND」をクリックします。