ドットインストール MongoDBの基礎 #13..#16 - いろいろ


より。

ドキュメントの更新

> // user-9のドキュメントは_idとscoreのフィールドのみになる
> db.users.update({name: 'user-9'}, {score: 100});
> // scoreフィールドを100に更新する
> db.users.update({name: 'user-8'}, {'$set': {score: 100}});
> // scoreフィールドに-20を加算する
> db.users.update({name: 'user-8'}, {'$inc': {score: -20}});
> // scoreフィールドを削除する
> db.users.update({name: 'user-8'}, {'$unset': {score: 1}});
> // teamフィールドをmyteamフィールドに変更する
> db.users.update({name: 'user-8'}, {'$rename': {team: 'myteam'}});

ちょっと高度な更新

> // upsert(条件に一致するドキュメントが存在していれば更新を、そうでなければ挿入をする)
> db.users.update({name: 'user-10'}, {'$inc': {score: 5}}, true);
> // 条件に一致するドキュメントが複数存在した場合、一致したドキュメントすべてを更新する
> db.users.update({}, {'$inc': {score: 5}}, false, true);

ファイルからコマンドを実行する

// command.js
db.usres.remove({name: 'user-2'});

コマンドラインから下記を実行する

$ mongo blog_app command.js

インタラクティブシェルから実行する場合は以下

> load('command.js');

バックアップの取得

$ mongodump --db blog_app

まーダンプですな。
リストアは下記。

$ mongorestore --drop

カレントディレクトリ(なのかな?)のdumpディレクトリ内のダンプしたbsonファイルをリストアする。
--dropは既にコレクションなどが存在した場合でも上書き(削除?)する。


ダンプとリストアはオプションもいろいろあるようなのでよく調べておきたいかなー。