MongoDBクライアントの基本的なコマンド
起動と終了
・起動
1 | $ mongo |
・終了
1 | > exit; |
データベースの操作
・DBの一覧表示
1 2 3 | > show dbs; admin (empty) local 0.078GB |
・DBの選択
1 | > use local; |
・DBの作成
1 2 | > use sample; > db.createCollection("members"); |
データベース名:sampleを作成。
※コレクションやドキュメントを作成して初めてDBが生成される。
・DBの削除
1 | > db.dropDatabase(); |
・DBのコピー
1 | > db.copyDatabase("コピー元DB名", "コピー先DB名"); |
コレクションの操作
・コレクションの生成
1 | > db.createCollection("members"); |
・コレクションの表示
1 | > show collections; |
・コレクションの削除
1 | > db.members.drop(); |
・コレクション名の変更
1 | > db.members.renameCollection("members2"); |
ドキュメントの操作
・データのインサート
1 | > db.members.insert({"name":"hogefuga", "email":"hogefuga@hogefuga.jp", "age":20}); |
コレクション名:membersに名前とアドレスをインサート。
・データの一覧取得
1 | > db.members.find(); |
・データの削除
1 | > db.members.remove({}); |
検索
・条件付き検索(年齢が20歳のものだけ)
1 | > db.members.find({"age":20}); |
・条件付き検索(年齢が20歳の名前を取得)
1 | > db.members.find({"age":20}, {"name":true}); |
・条件付き検索(年齢が20歳以外の人)
1 | > db.members.find({"age":{$ne:20}}); |
$ne はnot equal。
・条件付き検索(年齢が20より上の人)
1 | > db.members.find({"age":{$gt:20}}); |
$gt はgreater than。
その他にも
$gte (greater than equal):xx以上
$lt (less than):xxより小さい
$lte (less than equal):xx以下
がある。
・1件取得(条件指定)
1 | > db.members.findOne({"name":"fuga"}); |
最初にヒットしたものが抽出される。
・重複無しで検索(「name」で重複なしで抽出)
1 | > db.members.distinct("name"); |
・重複無し検索結果の個数
1 2 | > db.members.distinct("name").length; 2 |
INSERT(新規追加)
・ドキュメントの追加
1 | > db.members.insert({name:"fuga", age:22}); |
UPDATE(更新)
・既にデータがある場合
1 | > db.members.update({name:"fuga"}, {$set:{age:33}}); |
・新規にデータ(カラム)の追加
1 | > db.members.update({name:"fuga"}, {$set:{country:"japan"}}); |
・ドキュメント数の表示
1 | > db.members.count(); |
日付(時刻)
MongoDBではタイムゾーンを指定できない。
すべて、協定世界時(UTC)で表現される。
JSTの時刻を扱いたい場合は、mongoDBから取り出した時に+09:00する必要がある。
・日付(時刻)の新規追加
1 | > db.time.insert({name:"fuga", accessTime:new Date()}); |
・日付(時刻)をキーにした検索(2014/03/07/ 10:00:00 以降のもの)
1 | > db.time.find({accessTime:{$gte:ISODate("2014-03-07T10:00:00")}}); |
その他
・DBの状態確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | > db.stats(); { "db" : "mydb", ※ DB名 "collections" : 3, ※ コレクション数 "objects" : 6, ※ データ数 "avgObjSize" : 80, "dataSize" : 480, "storageSize" : 24576, "numExtents" : 3, "indexes" : 1, "indexSize" : 8176, "fileSize" : 67108864, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "extentFreeList" : { "num" : 0, "totalSize" : 0 }, "ok" : 1 } > |