mongoDB ドキュメント(レコード)検索にand条件を使用する
mongoDBで、ドキュメント(レコード)検索にand条件を使用する手順を記述してます。「db.コレクション名.find()」に「$and」を指定することで可能です。「or」の場合も同じように「$or」を使用します。
環境
- OS CentOS Stream release 9
- MongoDB 6.0.2
手順
ドキュメント(レコード)検索にand条件を使用するには、「db.コレクション名.find()」に
「$and」を指定します。
db.コレクション名.find({$and: [{ 条件 },{ 条件 } ]});
実際に、以下のデータベース「hoge」にある「foo」というコレクション(テーブル)のドキュメント(レコード)を使用して検索を実行してみます。
> use hoge
> db.foo.find()
{ "_id" : ObjectId("61b6dbe43d393774a1cf22cb"), "name" : "itiro", "age" : 10, "gender" : "m" }
{ "_id" : ObjectId("61b6dbe83d393774a1cf22cc"), "name" : "jiro", "age" : 20, "gender" : "m" }
{ "_id" : ObjectId("61b6dbed3d393774a1cf22cd"), "name" : "saburo", "age" : 30, "gender" : "m" }
{ "_id" : ObjectId("61b6dc4c3d393774a1cf22ce"), "name" : "jiro", "age" : 25, "gender" : "f" }
{ "_id" : ObjectId("61b6dc503d393774a1cf22cf"), "name" : "jiro", "age" : 30, "gender" : "x" }
プロパティ「name」が「jiro」のものかつ「age」が「25」以上なものを検索します。
> db.foo.find({$and: [{ name : 'jiro' },{ age : { $gte : 25 } }]});
{ "_id" : ObjectId("61b6dc4c3d393774a1cf22ce"), "name" : "jiro", "age" : 25, "gender" : "f" }
{ "_id" : ObjectId("61b6dc503d393774a1cf22cf"), "name" : "jiro", "age" : 30, "gender" : "x" }
and条件が指定されていることが確認できます。
or条件
orの場合は、andをorに変更するだけです。
> db.foo.find({$or: [{ name : 'jiro' },{ age : { $gte : 25 } }]});
{ "_id" : ObjectId("61b6dbe83d393774a1cf22cc"), "name" : "jiro", "age" : 20, "gender" : "m" }
{ "_id" : ObjectId("61b6dbed3d393774a1cf22cd"), "name" : "saburo", "age" : 30, "gender" : "m" }
{ "_id" : ObjectId("61b6dc4c3d393774a1cf22ce"), "name" : "jiro", "age" : 25, "gender" : "f" }
{ "_id" : ObjectId("61b6dc503d393774a1cf22cf"), "name" : "jiro", "age" : 30, "gender" : "x" }
-
前の記事
MySQL indexを一覧で確認する 2022.05.14
-
次の記事
PostgreSQL ロールを削除する 2022.05.14
コメントを書く