为什么刚写入400W记录后使用db.collections.find().count()得到的结果不是400W

发布问题 回首页

为什么刚写入400W记录后使用db.collections.find().count()得到的结果不是400W

★ 1 1 person favorited this question

为什么刚写入400W记录后使用db.collections.find().count()得到的结果不是400W且结果比400W大,需要等待一段时间才是400W。
环境为3副本3切片部署,过程是查询总数结果先增加到了430W左右,然后在慢慢减少至400W。
这样的话怎样统计一个Collections的总记录数好呢?

贝贝 在大约 之前 回答了
  • 提问于
  • Answers3 个
  • 浏览 958 次
  • 最新活跃于

3 个回答3

0
贝贝 answered about

查询发到了从上,数据迁移时有多余的数据,从没有 chunk 信息,不能过滤多余数据.
最简单的,设置 read_preference 为 primary 即可.

0
eshujiushiwo answered about

HI
原因是在迁移数据。
可以用aggregate的group来做。

http://docs.mongodb.org/manual/reference/command/count/#behavior

0
TJ answered about

看一下这篇文档: http://docs.mongodb.org/manual/reference/command/count/

To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create