MongoDB 命令速查表

数据库权限管理

登录

如果启用了MongoDB的认证功能,进入mongo之后,执行以下命令。

use admin # DB 選択
db.auth("user_name", "password") # 認証

或者,在使用mongo登录时,可以使用以下方式登录。

mongo DB名 -u ユーザ名 -p パスワード
用户操作
    • 基本的に、対象となる DB を use データベース名 で選んでから行う

 

    ユーザ作成前に、事前に DB を作成しておくこと
# ユーザ一覧 確認
db.getUsers()

# 全 DB の管理者権限 (CRUD 含む) をもつユーザ 作成
db.createUser({user:"user_name", pwd:"password", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})

# 特定の DB の管理者権限をもつユーザ 作成
db.createUser({user:"user_name", pwd:"password", roles:[{role:"dbOwner", db:"db_name"}]})

# 特定の DB の一般ユーザ 作成
db.createUser({user:"user_name", pwd:"password", roles:[{role:"read", db:"db_name"}]})
db.createUser({user:"user_name", pwd:"password", roles:[{role:"readWrite", db:"db_name"}]})

# パスワード変更
db.changeUserPasword("user_name", "new_password")

# ユーザにロールを追加 (例: 読み取り権限 付与)
db.grantRolesToUser("user_name", [{role:"read", db:"db_name"}])

# ユーザのロールを削除 (例: 読み取り権限 剥奪)
db.revokeRolesFromUser("user_name", [{role:"read", db:"db_name"}])

# ユーザ削除
db.dropUser("user_name")

增删改查操作:数据库。

    基本的に、対象となる DB を use データベース名 で選んでから行う
# DB 一覧
show dbs

# 使用 DB 切り替え
use データベース名

# 現在選択している DB 確認
db.stats()

# DB 作成 (実際は 1 件でもコレクションを作成しないと表示されない)
use データベース名

# DB 削除 (use で選択されているものが削除される)
db.dropDatabase()

CRUD 操作:集合操作。

    基本的に、対象となる DB を use データベース名 で選んでから行う
# コレクション 一覧
show collections

# コレクション 作成
db.createCollection('collection_name')

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

增删改查操作: 文档

    基本的に、対象となる DB を use データベース名 で選んでから行う
# ドキュメント 一覧 (全件 検索)
db.コレクション名.find()

# ドキュメント 一覧 (CLI でも見やすく整形してくれるオプション)
db.コレクション名.find().pretty()

# ドキュメント 検索 (AND 条件)
db.コレクション名.find({column1: 'aaa', column2: 10})

# ドキュメント 検索 (OR 条件検索)
db.コレクション名.find({column_name1: 'aaa'}, {column_name2: 10})

# ドキュメント 検索 (否定 条件検索 (index に注意))
db.コレクション名.find({column_name: {$ne: 'aaa'}})

# ドキュメント 検索 (「xxx より大きい」 条件検索)
db.コレクション名.find({column_name: {$gt: 10}})

# ドキュメント 検索 (「xxx 以上」 条件検索)
db.コレクション名.find({column_name: {$gte: 10}})

# ドキュメント 検索 (「xxx 未満」 条件検索)
db.コレクション名.find({column_name: {$lt: 10}})

# ドキュメント 検索 (「xxx 以下」 条件検索)
db.コレクション名.find({column_name: {$lte: 10}})

# ドキュメント 検索 (正規表現で検索)
db.コレクション名.find({column_name: /^aaa/})

# ドキュメント ソート (昇順 検索)
db.コレクション名.find().sort({column_name: 1})

# ドキュメント ソート (降順 検索)
db.コレクション名.find().sort({column_name: -1})

# ドキュメント 件数
db.コレクション名.count()

# ドキュメント 検索 (件数指定)
db.コレクション名.limit(20)

# ドキュメント 作成 (コレクション が万が一無くても自動で同時に生成される)
db.コレクション名.insert({new_column1: 'new_value', new_column2: 999})

# ドキュメント 作成 (Date 型で作成する場合)
db.コレクション名.insert({date_column: ISODate("2019-03-03T09:00:00+09:00")})

# ドキュメント 更新 (第 1 引数が更新条件、 第 2 引数が更新内容)
db.コレクション名.update({column_name: 'aaa'}, {$set: {column_name: 'bbb'}})

# ドキュメント 削除
db.コレクション名.remove({column_name: 'aa'})

CRUD 操作:索引类操作

    基本的に、対象となる DB を use データベース名 で選んでから行う
# インデックス作成 (インデックス貼るだけ)
db.コレクション名.ensureIndex({column_name: 1})

# インデックス作成 (インデックスに名前をつける)
db.コレクション名.ensureIndex({column_name: 1}, {name: 'index name'})

# インデックス削除
db.コレクション名.dropIndex('index name')

# ユニーク (一意) 制約
# sparse: true にしないと 「null」 もユニークの制約対象になってしまう
db.コレクション名.ensureIndex({column: 1}, {unique: true, sparse: true})

用户的角色 de

请参阅官方的“内置角色”以获取主要推出的角色信息。

種別ロール権限内容Database User Rolesreadシステム系のDBやコレクション以外のデータを読む権限
readWriteシステム系のDBやコレクション以外のデータを読み書きする権限Database Administration RolesdbAdminデータベースの管理権限
dbOwnerシステム全体の管理権限。readWrite、dbAdmin、userAdminロールと関連付いている
userAdminユーザやロールの管理者Cluster Administration RolesclusterAdminクラスタの管理権限。clusterManager、clusterMonitor、hostManagerロールと紐付く
clusterManagerクラスタの運用管理権限
clusterMonitorクラスタのモニタリングツールに対する参照権限
hostManagerサーバの運用管理権限Backup and Restore Rolesbackupデータのバックアップ権限
restoreバックアップデータからのリストア権限ALL-Database RolesreadAnyDatabase全てのDBの読み取り権限
readWriteAnyDatabase全てのDBの読み書き権限
userAdminAnyDatabase全てのDBのユーザ管理権限
dbAdminAnyDatabase全てのDBのデータベース管理権限。dbAdminと同等Superuser Rolesrootシステム全体の管理権限。readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin roles、restore、backupが紐付くInternal Role__system内部処理用の権限。割り当ててはいけない