標籤:
轉自http://www.blogjava.net/waterjava/archive/2011/03/23/346819.html命令列
| --help |
顯示命令列參數 |
| --nodb |
不串連資料庫方式啟動,稍後可以使用 new Mongo() 或 connect() 來建立串連 |
| --shell |
從命令列運行完一個 .js 檔案後,停留在shell中,而不是結束 |
特殊命令
非JavaScript的輔助指令:
| help |
顯示協助 |
| db.help() |
顯示 db 方法協助 |
| db.myColl .help() |
顯示聚集的方法協助 |
| show dbs |
列印伺服器上所有資料庫的列表 |
| use dbname |
設定db變數來指明使用伺服器上的 dbname 資料庫 |
| show collections |
列印當前資料庫的所有聚集 |
| show users |
列印當前資料庫的使用者 |
| show profile |
列印最近耗時大於1ms的profiling操作 |
基本的Shell Javascript操作
| db |
指向當前資料庫物件和串連的變數,已經在你的執行個體裡定義好。 |
| db.auth(user,pass) |
資料庫認證(如果運行安全模式的話) |
| coll = db.collection |
訪問資料庫裡特定的 collection |
| cursor = coll.find() |
尋找聚集裡所有的對象。參考 [查詢] 。 |
| coll.remove(objpattern ) |
從聚集裡刪除匹配的對象。 objpattern 是一個指定匹配的域的對象,例如:coll.remove( { name: "Joe" } ); |
| coll.save(object ) |
在聚集中儲存對象,如果已經存在的話則更新它。 如果對象有 presave 方法,則會在儲存到資料庫之前(插入和更新之前)調用該方法。 |
| coll.insert(object) |
向聚集中插入對象。不會檢查該對象是否已經存在聚集中(即,不是 upsert) |
| coll.update(...) |
在聚集中更新對象。update() 有許多參數,請查看 更新 文檔。 |
| coll.ensureIndex( { name : 1 } ) |
對 name 建索引。如果索引存在則不做任何事。 |
| coll.drop() |
刪除 coll 聚集 |
| db.getSisterDB(name) |
返回當前串連的另一個資料庫。它允許跨資料庫查詢,例如:db.getSisterDB(‘production‘).getCollectionNames() |
查詢
| coll.find() |
查詢所有文檔 |
| it |
迴圈上次 find() 調用返回的遊標 |
| coll.find( criteria ); |
查詢聚集中匹配 criteria 的對象。例如:coll.find( { name: "Joe" } ); |
| coll.findOne( criteria); |
查詢並返回一個對象。如果沒有找到則返回 null。如果你只需要返回一個對象,這個方法比 find() as limit(1) 效率更高。如果元素類型是字串,數字或時間,你還可以使用Regex:coll.find( { name: /joe/i } ); |
| coll.find( criteria, fields ); |
查詢對象裡特定的域。例如:coll.find( {}, {name:true} ); |
| coll.find().sort( {field :1[, field :1] }); |
對返回結果進行排序(field ASC)。使用 -1 表示 DESC。 |
| 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。這比你自己迴圈更快,但仍然需要消耗些時間。 |
更多資訊請參考 [查詢] 。
錯誤檢查
| [{{db.getLastError()}}] |
返回上次操作的錯誤 |
| db.getPrevError() |
返回之前操作的錯誤 |
| db.resetError() |
清除錯誤記錄 |
管理命令
| db.cloneDatabase(fromhost) |
從另外指定的主機拷貝當前資料資料庫。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>") |
開啟一個新的資料庫連接。一個shell可能有多個串連,但是shell自動的getLastError只用於 ‘db‘ 變數。 |
| conn = new Mongo("hostname") |
開啟一個新的伺服器串連。然後可以使用 getDB() 來選擇一個資料庫。 |
| db = conn.getDB("dbname") |
對一個串連選擇一個特定的資料庫。 |
其他
| Object.bsonsize(db.foo.findOne()) |
列印一個資料庫物件的bson大小(mongo 版本1.3及以上) |
| db.foo.findOne().bsonsize() |
列印一個資料庫物件的bson大小 (mongo 版本1.3之前) |
mongodb 常用命令