回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
}
]
?