はじめに
MongoDBの導入から簡単な使い方をメモっておきます。
ソフトウェア | バージョン |
---|---|
CentOS7 | 7.3.1611 |
Node.js | v6.11.1 |
Node-RED | v0.17.5 |
MongoDB | 3.4 Community Edition |
MongoDBのインストール
公式サイトに従ってインストールします。
yumリポジトリの登録
MongoDBのyumリポジトリを設定します。
# vi /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
インストール
yumでインストールします。
# yum install -y mongodb-org
外部からの接続を許可する
デフォルトでは外部からの接続が禁止されているため、これを許可する設定に変更します。
/etc/mongod.confのbindIp: 127.0.0.1の記述をコメントアウトします。
vi /etc/mongod.conf
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
実行してみる
serviceとして実行してみます。SELINUXの設定は適切に。
# systemctl start mongod.service
使ってみる
最低限の使い方です。
- MongoDBへの接続
> mongo
- データベースへの接続
- 既存のデータベースの場合は接続します。
- 新規のデータベースの場合はuseで接続した後に、コレクションを作らなければなりません。
> use [データベース名]
- コレクションの作成
> db.createCollection('コレクション名')
- データベースの一覧表示
> show dbs
- データベース内のコレクション一覧表示
> use [データベース名]
> show collections
- ドキュメントの登録
> use [データベース名]
> db.[コレクション名].insert(JSONデータ)
- ドキュメントの参照(全件)
> use [データベース名]
> db.[コレクション名].find()
- ドキュメントの参照(検索)
> use [データベース名]
# AND検索
> db.[コレクション名].find({"フィールド名":"検索値"}, {"フィールド名":"検索値"},・・・)
# OR検索
> db.[コレクション名].find({$or:[{"フィールド名":"検索値1"}, {"フィールド名":"検索値2"}]})
# 範囲検索(検索値1より大きく検索値2未満)
> db.[コレクション名].find({"フィールド名":{>:"検索値1", <:"検索値2"}})
# 取得する項目の指定方法
# 任意の数値が0の場合は非表示となる。_idを表示したくない場合は"_id":0とする。
> db.[コレクション名].find({検索条件},{"取得項目":[任意の数値], "取得項目":[任意の数値]・・・})
# 特定の項目を持つ/持たないドキュメントの検索
> db.[コレクション名].find({"フィールド名":{$exists:[true|false]}})
- ドキュメントの更新
> use [データベース名]
# ドキュメントを洗い替える場合
> db.[コレクション名].update({検索条件}, {更新後のJSONドキュメント})
# 特定の項目を更新する場合、または、新たに項目を追加する場合
> db.[コレクション名].update({検索条件}, {$set:{"フィールド名":更新内容, "フィールド名",更新内容,・・・}})
# インクリメンタル(指定したフィールドの値を増分プラスする)
> db.[コレクション名].update({検索条件}, {$inc:{"フィールド名":増分}})
# あれば更新、無ければ登録
# 第3引数にtrueを指定する。
> db.[コレクション名].udpate({検索条件}, {更新内容}, true)
- ドキュメントの削除
> use [データベース名]
> db.[コレクション名].remove({検索条件})
比較演算子
演算子 | 記述方法 |
---|---|
> | $gt |
>= | $gte |
< | $lt |
<= | $lte |
!= | $ne |
or | $or |