====== よく使うコマンド ======
[[https://gihyo.jp/dev/serial/01/mongodb/0010|第10回 MongoDBでの集計処理]]
===== DB関連 =====
#Mログイン
#mongo 「ホスト名」/「DB名」 -u 「ユーザー名」 -p
#パスワードはroot
>mongo admin -u root -p
>mongo -u root -p
#DB一覧
show dbs;
#DB作成、切り替え(※大文字・小文字に注意)
use [DB名];
# DB削除
use 「削除したいDB名」;
db.dropDatabase();
#USER一覧
show users;
===== コレクション(=テーブル) =====
#コレクション一覧
show collections;
#コレクション作成
db.createCollection('「コレクション名」');
#コレクション削除
db.「コレクション名」.drop();
#検索
db.[コレクション名].find()
db.[コレクション名].find({name:'taro'})
#検索条件には正規表現も使用できる
db.[コレクション名].find({name:/ta/})
#type "it" for moreが表示される場合は表示件数変更
DBQuery.shellBatchSize = 3
#件数確認
db.[コレクション名].count()
===== ドキュメント(=レコード) =====
MongoDBは、multiフラグを指定しなければ最初にマッチしたやつだけしか更新されないので注意
#追加
db.log.insert( { name:'taro', age:11 } );
#プロパティの追加
db.log.update( { name:'taro'},{$set:{money:1000 }} );
db.log.update( { name:'taro'},{$inc:{age:5 }} );
#プロパティの削除
db.log.update( { name:'taro'},{$set:{money:'' }} );
#プロパティ名を変更
db.log.update( { name:'taro'},{$rename:{age:"old" }} );
#プロパティを更新 ※一致するものを全て
db.log.update( { name: /taro/ }, { $set:{ age: 45 } }, { multi:true } );
===== ユーザー関連 =====
# 新規ユーザー作成(ここではrootの権限を持ったユーザーを作成してます)
use admin;
db.createUser(
{
user:"「作成したいユーザー名」",
pwd:"「パスワード」",
roles:[
{
"role" : "root",
"db" : "admin"
}
]
}
);
※useで指定しているDBと、rolesで指定しているDBは同じじゃなくても問題ありません。
※MongoDBにログインする場合、useで指定したDBに対してログインして下さい。
※roleはrootである必要はないので、必要な権限のroleに変更して下さい。
# ユーザー権限変更(ここでは任意のユーザーの権限をdbOwnerに変更しています)
use 「DB名」;
db.updateUser(
"「ユーザー名」",
{
roles:
[
{
role: "dbOwner",
db: "「DB名」"
}
]
}
);
※roleはdbOwnerである必要はないので、必要な権限のroleに変更して下さい。
# ユーザー削除
use admin;
db.system.users.remove(
{"_id" : "「DB名」.「ユーザー名」"}
);
===== その他 =====
#csvインポート
mongoimport --host [接続先ホスト] -d [データベース名] -c [コレクション名] --type csv --file [csvファイル名] --headerline --drop
#JSファイルの実行(バッチのような感じ)
mongo [接続先ホスト] --quiet [JSファイル名]