MongoDb 创建、更新以及删除文档常用命令(三)

2015-11-21 03:26:36 · 作者: · 浏览: 52
回3条记录并打印信息?
db.users.find().limit(3).forEach(function(user) {print('my age is ' + user.age)}); ?
结果?
my age is 18 ?
my age is 19 ?
my age is 20 ?
限制返回记录的开始点skip() ?
从第3条记录开始,返回5条记录(limit 3, 5) ?
db.users.find().skip(3).limit(5); ?
查询记录条数count() ?
db.users.find().count(); ?
db.users.find({age:18}).count(); ?
以下返回的不是5,而是user表中所有的记录数量?
db.users.find().skip(10).limit(5).count(); ?
如果要返回限制之后的记录数量,要使用count(true)或者count(非0) ?
db.users.find().skip(10).limit(5).count(true); ?
分组group() ?
假设test表只有以下一条数据?
{ domain: "www.mongodb.org"  
, invoked_at: {d:"2009-11-03", t:"17:14:05"}  
, response_time: 0.05  
, http_action: "GET /display/DOCS/Aggregation"  
}  

?

使用group统计test表11月份的数据count:count(*)、total_time:sum(response_time)、avg_time:total_time/count;?
 
db.test.group(  
{ cond: {"invoked_at.d": {$gt: "2009-11", $lt: "2009-12"}}  
, key: {http_action: true}  
, initial: {count: 0, total_time:0}  
, reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time }  
, finalize: function(out){ out.avg_time = out.total_time / out.count }  
} );  
[  
{  
"http_action" : "GET /display/DOCS/Aggregation",  
"count" : 1,  
"total_time" : 0.05,  
"avg_time" : 0.05  
}  
]

?