MongoDB基礎

インストール

/etc/yum.repos.d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

を記載し、

yum install -y mongodb-org

起動
systemctl start mongod

停止
systemctl stop mongod

再起動
systemctl restart mongod

自動起動
systemctl enable mongod

シェル起動
mongo

シェル終了
exit

Mongoシェルコマンド

db切り替え(作成)
use DB

db削除
db.dropDatabase()

利用中db
db

db一覧
show dbs

コレクション一覧
show collections

コレクション作成
db.createCollection(“コレクション名”)
※Cは大文字

コレクション削除
db.コレクション名.drop()

ドキュメント作成
db.コレクション名.insert({“name”:”taro”,”age”:1})
db.コレクション名.insert({“name”:”taro”,”age”:1, “addr”:”tokyo”})

ドキュメント検索
db.コレクション名.find()
※すべて

db.コレクション名.findOne()
※一つのみ

db.コレクション名.find({“name”:”taro”})
※条件

ドキュメント更新
db.コレクション名.update(検索内容、更新内容)
db.コレクション名.update({“name”,”taro”},{“name”:”jiro”})

通常はフィールドが全て上書きされる。
更新したい場合$setを使う。
フィールドが存在すれば更新、しないと新しいフィールドとして追加される。

db.コレクション名.update({“name”,”taro”},{$set:{“name”:”jiro”}})

ドキュメント削除
db.コレクション名.remove()
※すべて

db.コレクション名.remove(検索内容)

ユーザー

ユーザーはDBごとに作成adminのユーザーは管理者となる。

現在のDBに接続中のユーザー
db.getUsers()
db.system.users.find()

ユーザ作成
※2.4まではaddUser

use name_store

db.createUser({
user:”taro”,
pwd:”123″,
roles:[{
role: “readWrite”,
db: “admin”
}]

})

あるいは

db.createUser({
user:”jiro”,
pwd:”123″,
roles:[“dbAdminAnyDatabase”] 
})

db.createUser({
user:”shiro”,
pwd:”123″,
roles:[“root”]
})

現在の接続先のDBにユーザーがー作成される。
db:は対象のDBというよりロールが存在するDBという意。

主要なロール

read
readWrite
dbAdmin
dbOwner
userAdmin
readAnyDatabase
readWriteAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase(他のコレクションのfind等できない)
root

ユーザー削除
use db
db.dropUser(ユーザー名)

認証

認証有効化

/etc/mongod.conf
※winならProgram Filesの中

#security:

security:
__authorization: enabled
※インデント必要

ログイン方法

mongo
use admin
db.auth(“taro”, “123”)