如何获取mongodb中的记录数

时间:2016-06-03 15:31:02

标签: mongodb mongodb-query

我按日期提取记录说

db.Commercial_Auto.find({ "session.@Datestamp": {'$regex':'2016-05-03'}})

添加到我希望获取记录数的日期。

我们有计算的语法吗?

1 个答案:

答案 0 :(得分:0)

首先,最好将日期存储为date,而不是string$regex会给你带来结果,但效果不如你想象的那么高。至少应该尝试:

db.Commercial_Auto.find({ "session.@Datestamp": {'$regex':'^2016-05-03'}})  // note the ^ makes it be able to hit index if any

我建议您将字段转换为date以供进一步使用,请尝试:

db.Commercial_Auto.find({}).forEach(function(doc) {
  db.COmmercial_Auto.update({_id: doc._id}, {$set: {"session.@Datestamp", doc['session']['@Datestamp']}});
});

回到你问题countfind返回一个游标,使您可以从中调用count并获得结果:

db.Commercial_Auto.find({ "session.@Datestamp": {'$regex':'^2016-05-03'}}).count();

或者您可以使用

db.Commercial_Auto.count({ "session.@Datestamp": {'$regex':'^2016-05-03'}})

这是第一个陈述的捷径 另请注意,在分片群集中,计数可能不会给您一个准确的数字,但是粗略的数字。见document about count