mongo shell命令
命令行
--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) 效率更高。如果元素類型是字符串,數字或時間,你還可以使用正則表達式: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之前) |
posted on 2011-03-23 10:29 狼愛上貍 閱讀(8453) 評論(0) 編輯 收藏 所屬分類: Mongo