はじめに
MongoDB をはじめて使う方向けにDB検索時の条件指定の方法をまとめました。
「これだけ覚えておけば大丈夫!」とは言えませんが、
- DB構造の把握をしたい
- 欲しいデータを表示したい
というときによく使用するコマンドなので覚えておいて損はないと思います。
実際には覚えるというよりはどういう風に使うんだっけ・・? ってなったときに見返せるように使っていただけたらと思います。
目次
-
はじめに
-
目次
-
用語の違い
-
検索方法
- 基本形
- 全検索
- ドキュメントを一つ取得
- 基本形
-
メソッド
- limit()
- sort()
- pretty()
-
クエリ
- {},{}
- 特定の値を指定して検索
- 第1引数で条件を指定
- 第2引数で条件を指定
-
演算子(条件指定)
- $lte
- $gte
- $in
-
おわりに
-
参考文献
- Mongoマニュアル
- Qiita
用語の違い
RDBとの用語の違いです。
RDB | MONGO |
---|---|
Database | Database |
Table(テーブル) | Collection(コレクション) |
Record(レコード) | Document(ドキュメント) |
Column(カラム) | Field(フィールド) |
検索方法
DBを選択した前提で書いていきます。ここらへんのことも今後記事にしていきたいと思っていますが、今回は検索方法についてフォーカスしていきます。
基本形
- 全検索
db.Collection.find()
- ドキュメントを一つ取得
db.Collection.findOne()
クエリ
DATEというフィールドがあるとして話していきます。
{},{}
db.Collection.find( {field: v},{field: 0} )
-
第1引数には条件
-
第2引数には表示する(1) or 表示しない(0)
特定の値を指定して検索
db.Collection.find( {DATE: '20210612'},{} )
第1引数で条件を指定
db.Collection.find( {},{DATE:1} )
第2引数で条件を指定
db.Collection.find( {},{DATE:0} )
メソッド
limit()
意味 | n |
---|---|
ドキュメントをn件取得 | 数字(1, 2, 3, and so on) |
db.Collection.find().limit(n)
sort()
意味 | n |
---|---|
降順 | -1 |
昇順 | 1 |
db.Collection.find().sort( {"DATE": n} )
pretty()
読みやすい形で表示する
db.collection.find().pretty()
演算子(条件指定)
演算子 | 用途 |
---|---|
$lt | より小さい |
$lte | 以下 |
$gt | より大きい |
$gte | 以上 |
$in | いずれかを含む |
$lte
選択したフィールドの値以下。
たとえば、年齢(フィールド)が20歳以下のドキュメント
db.collection.find( { age: { $lte: 20 } } )
$gte
選択したフィールドの値以上。
たとえば、年齢(フィールド)が20歳以上のドキュメント
db.collection.find( { age: { $gte: 20 } } )
$in
選択したフィールドの値を持っている。
たとえば、年齢(フィールド)が10歳か20歳のドキュメント
db.collection.find( { age: { $in: [ 10, 20 ] } } )
おわりに
すべてを網羅しているわけではありませんが、このような使い方をすれば比較的かんたんにDB検索をすることができますし、困ることが少なくなるかと思います。
「こうした方がいいんじゃない?」、「これもよく使うよ」などご意見いただけたら幸いです。