查询

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之前)