based on v60 (2010/07/08 追従) - オリジナル
コマンドライン
| --help |
コマンドラインオプションを表示 |
| --nodb |
DBなしで起動。起動後に、 new Mongo() や connect() で接続することができます。 |
| --shell |
.js ファイルをコマンドラインから読み込んだ後で、コマンドを終了せずにシェルに残ります。 |
特別なコマンドヘルパー
Javascriptではない便利なマクロ
| help |
ヘルプの表示 |
| db.help() |
dbのメソッドに関するヘルプの表示 |
| db.myColl.help() |
コレクションのメソッドに関するヘルプの表示 |
| show dbs |
接続中のすべてのデータベースを表示 |
| use dbname |
サーバ上のdb変数を、 dbname にセット |
| show collections |
現在のデータベースのすべてのコレクションを一覧表示 |
| show users |
現在のデータベースのすべてのユーザを一覧表示 |
| show profile |
1ms以上かかった直近の操作のプロファイルを表示。 |
基本的なJavascriptの操作
| db |
この変数は現在接続中のデータベースオブジェクトを参照します。あらかじめ設定されています。 |
| db.auth(user,pass) |
(セキュアモードで動いている場合、)データベースと認証します。 |
| coll = db.collection |
データベース内の特定の collection にアクセスします。 |
| cursor = coll.find(); |
コレクション内のすべてのオブジェクトを返します。 queries. |
| coll.remove(objpattern); |
コレクションの中からマッチしたオブジェクを削除します。 objpattern でマッチするパターンを指定します。例: coll.remove( { name: "Joe" } ); |
| coll.save(object); |
コレクションにオブジェクトをsaveします。すでにオブジェクトが存在する場合には更新します。
オブジェクトが presave メソッドを持っている場合、オブジェクトがsaveされる前に(updateとinsertの両方のケースで)そのメソッドが呼ばれます。 |
coll.insert(object) |
オブジェクトをコレクションに追加します。 オブジェクトが既にコレクションに存在するかどうかのチェックはしません(つまり upsert ではないです)。 |
coll.update(...) |
コレクション内のオブジェクトを更新します. Updating ドキュメント参照; update() はたくさんのオプションがあります。 |
| coll.ensureIndex( { name : 1 } ) |
tab.name いnインデックスを作成します。indexが既に存在する場合には何もしません。 |
| coll.update(...) |
|
| coll.drop() |
coll コレクションを削除します。 |
| db.getSisterDB(name) |
同じ接続のまま、他のデータベースへスイッチします。 "use name" と同じですが、普通のjavascriptとして動きます。 |
| db.getSisterDB(name) |
同じ接続を使って、他のdatabaseへの接続の参照を返します。使用例: db.getSisterDB('production').getCollectionNames() |
クエリー
| coll.find() |
すべて取得する |
| it |
find() で返されたカーソルの次のイテレーションを続ける。 |
| coll.find( criteria ); |
criteria にマッチするものを取得する。例: coll.find( { name: "Joe" } ); |
| coll.findOne( criteria ); |
オブジェクト一つだけ返します。もし見つからない場合には null を返します。 もし1オブジェクトだけ欲しい場合、 find() と limit(1) よりも簡単です。エレメントのタイプが文字列、数値、日付の場合、正規表現が使えます。 coll.find( { name: /joe/i } ); |
| coll.find( criteria, fields ); |
オブジェクトから指定したフィールドだけ取得します。例: coll.find( {}, {name:true} ); |
| coll.find().sort( {field:1[, field:1] }); |
指定したフィールドの昇順で結果を返します。 降順の場合には -1 を使ってください。 |
| coll.find( criteria ).sort( { field : 1 } ) |
criteria にマッチするオブジェクトを、 field でソートして返します |
| coll.find( ... ).limit(n) |
結果を n 行だけ返します。パフォーマンスのために、ある特定の行数だけ必要な場合、推奨されます。 |
| coll.find( ... ).skip(n ) |
n 行だけスキップします。 |
| coll.count() |
コレクションの中のオブジェクトの数を返します。 |
| coll.find( ... ).count() |
クエリにマッチするオブジェクトの数を返します。 この数は、limitやskipを無視することに注意してください。例えば、100レコードがマッチして、limitを10にセットした場合、 count() は100を返します。 これは自分で結果をイテレートするよりは速いですが、それでもいくらかの時間はかかります。 |
さらに詳しい情報は、 queries を参照。
エラーチェック
| db.getLastError() |
最後の操作でのエラーを返します。 |
| db.getPrevError() |
前の操作でのエラーを返します。 |
| db.resetError() |
エラーをクリアします。 |
管理コマンドヘルパー
| db.cloneDatabase(fromhost) |
指定した他のホストから現在のデータベースをcloneします。 fromhostは必ずnoauthモードにしてください。 |
| db.copyDatabase(fromdb, todb, fromhost) |
fromhost/fromdb で指定したデータベースを、現在接続中データベースへtodbとしてコピーします。fromhostは必ずnoauthモードにしてください。 |
| db.repairDatabase() |
現在のデータベースを修復/コンパクトします。大きいデータベースではこれは非常に重たいです |
| db.addUser(user,pwd) |
ユーザを現在のデータベースに追加します。 |
| db.getCollectionNames() |
すべてのコレクションの名前を返します。 |
| db.dropDatabase() |
現在のデータベースを削除します。 |
新しいコネクションを開く
| db = connect("<host>:<port>/<dbname>") |
新しいデータベースコネクションを開く。一つのシェルの中で、複数のコネクションを持つことができます。しかし、シェルによってgetLastErrorで返されるレポートは、 'db' 変数の接続のみです。connect() の例は ここ を参照してください。 |
| conn = new Mongo("hostname") |
新しいサーバへの接続を開く。 接続後、 getDB() でdatabaseを選択してください。 |
| db = conn.getDB("dbname") |
コネクションで指定したデータベースを選択 |
その他
| Object.bsonsize(db.foo.findOne()) |
DBオブジェクトのbsonのサイズを表示。 (Mongo 1.3以上) |
| db.foo.findOne().bsonsize() |
一つのオブジェクトのbsonのサイズを表示。(Mongo 1.3以上) |
機能の完全なリストについては、 shell API を参照してください。
例
MongoDBのソースコードの、 jstests/ ディレクトリに、たくさんのmongoシェルのスクリプトがあります。
IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.
These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group. blog comments powered by Disqus