命令行
--help |
顯示命令行參數(shù) |
--nodb |
不連接數(shù)據(jù)庫(kù)方式啟動(dòng),稍后可以使用 new Mongo() 或 connect() 來(lái)建立連接 |
--shell |
從命令行運(yùn)行完一個(gè) .js 文件后,停留在shell中,而不是結(jié)束 |
特殊命令
非JavaScript的輔助指令:
help |
顯示幫助 |
db.help() |
顯示 db 方法幫助 |
db.myColl .help() |
顯示聚集的方法幫助 |
show dbs |
打印服務(wù)器上所有數(shù)據(jù)庫(kù)的列表 |
use dbname |
設(shè)置db變量來(lái)指明使用服務(wù)器上的 dbname 數(shù)據(jù)庫(kù) |
show collections |
打印當(dāng)前數(shù)據(jù)庫(kù)的所有聚集 |
show users |
打印當(dāng)前數(shù)據(jù)庫(kù)的用戶(hù) |
show profile |
打印最近耗時(shí)大于1ms的profiling操作 |
基本的Shell Javascript操作
db |
指向當(dāng)前數(shù)據(jù)庫(kù)對(duì)象和連接的變量,已經(jīng)在你的實(shí)例里定義好。 |
db.auth(user,pass) |
數(shù)據(jù)庫(kù)認(rèn)證(如果運(yùn)行安全模式的話(huà)) |
coll = db.collection |
訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)里特定的 collection |
cursor = coll.find() |
查找聚集里所有的對(duì)象。參考 [查詢(xún)] 。 |
coll.remove(objpattern ) |
從聚集里刪除匹配的對(duì)象。
objpattern 是一個(gè)指定匹配的域的對(duì)象,例如:coll.remove( { name: "Joe" } ); |
coll.save(object ) |
在聚集中保存對(duì)象,如果已經(jīng)存在的話(huà)則更新它。
如果對(duì)象有 presave 方法,則會(huì)在保存到數(shù)據(jù)庫(kù)之前(插入和更新之前)調(diào)用該方法。 |
coll.insert(object) |
向聚集中插入對(duì)象。不會(huì)檢查該對(duì)象是否已經(jīng)存在聚集中(即,不是 upsert) |
coll.update(...) |
在聚集中更新對(duì)象。update() 有許多參數(shù),請(qǐng)查看 更新 文檔。 |
coll.ensureIndex( { name : 1 } ) |
對(duì) name 建索引。如果索引存在則不做任何事。 |
coll.drop() |
刪除 coll 聚集 |
db.getSisterDB(name) |
返回當(dāng)前連接的另一個(gè)數(shù)據(jù)庫(kù)。它允許跨數(shù)據(jù)庫(kù)查詢(xún),例如:db.getSisterDB('production').getCollectionNames() |
查詢(xún)
coll.find() |
查詢(xún)所有文檔 |
it |
循環(huán)上次 find() 調(diào)用返回的游標(biāo) |
coll.find( criteria ); |
查詢(xún)聚集中匹配 criteria 的對(duì)象。例如:coll.find( { name: "Joe" } ); |
coll.findOne( criteria); |
查詢(xún)并返回一個(gè)對(duì)象。如果沒(méi)有找到則返回 null。如果你只需要返回一個(gè)對(duì)象,這個(gè)方法比 find() as limit(1) 效率更高。如果元素類(lèi)型是字符串,數(shù)字或時(shí)間,你還可以使用正則表達(dá)式:coll.find( { name: /joe/i } ); |
coll.find( criteria, fields ); |
查詢(xún)對(duì)象里特定的域。例如:coll.find( {}, {name:true} ); |
coll.find().sort( {field :1[, field :1] }); |
對(duì)返回結(jié)果進(jìn)行排序(field ASC)。使用 -1 表示 DESC。 |
coll.find( criteria ).sort( { field : 1 } ) |
查找匹配 criteria 的對(duì)象,并對(duì) field 進(jìn)行排序。 |
coll.find( ... ).limit(n ) |
限制結(jié)果返回 n 行。如果你只需要某幾行數(shù)據(jù),推薦這樣做來(lái)獲得最優(yōu)性能。 |
coll.find( ... ).skip(n) |
跳過(guò) n 行結(jié)果。 |
coll.count() |
返回聚集里對(duì)象的總數(shù)。 |
coll.find( ... ).count() |
返回匹配該查詢(xún)的對(duì)象總數(shù)。注意,該返回會(huì)忽略 limit 和 skip。比如有100行記錄匹配該查詢(xún),但是limit為10,count() 仍會(huì)返回100。這比你自己循環(huán)更快,但仍然需要消耗些時(shí)間。 |
更多信息請(qǐng)參考 [查詢(xún)] 。
錯(cuò)誤檢查
[{{db.getLastError()}}] |
返回上次操作的錯(cuò)誤 |
db.getPrevError() |
返回之前操作的錯(cuò)誤 |
db.resetError() |
清除錯(cuò)誤記錄 |
管理命令
db.cloneDatabase(fromhost) |
從另外指定的主機(jī)拷貝當(dāng)前數(shù)據(jù)數(shù)據(jù)庫(kù)。fromhost必須為noauth模式。 |
db.copyDatabase(fromdb, todb, fromhost) |
拷貝fromhost的fromdb數(shù)據(jù)庫(kù)到當(dāng)前服務(wù)器的todb數(shù)據(jù)庫(kù)。fromhost必須為noauth模式。 |
db.repairDatabase() |
修復(fù)當(dāng)前數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)很大則該操作會(huì)非常慢。 |
db.addUser(user,pwd) |
給當(dāng)前數(shù)據(jù)庫(kù)添加用戶(hù)。 |
db.getCollectionNames() |
獲得所有聚集的列表。 |
db.dropDatabase() |
刪除當(dāng)前數(shù)據(jù)庫(kù)。 |
打開(kāi)額外連接
db = connect("<host>:<port>/<dbname>") |
打開(kāi)一個(gè)新的數(shù)據(jù)庫(kù)連接。一個(gè)shell可能有多個(gè)連接,但是shell自動(dòng)的getLastError只用于 'db' 變量。 |
conn = new Mongo("hostname") |
打開(kāi)一個(gè)新的服務(wù)器連接。然后可以使用 getDB() 來(lái)選擇一個(gè)數(shù)據(jù)庫(kù)。 |
db = conn.getDB("dbname") |
對(duì)一個(gè)連接選擇一個(gè)特定的數(shù)據(jù)庫(kù)。 |
其他
Object.bsonsize(db.foo.findOne()) |
打印一個(gè)數(shù)據(jù)庫(kù)對(duì)象的bson大小(mongo 版本1.3及以上) |
db.foo.findOne().bsonsize() |
打印一個(gè)數(shù)據(jù)庫(kù)對(duì)象的bson大小 (mongo 版本1.3之前) |