【发布时间】:2020-02-15 09:37:53
【问题描述】:
我从一个几 GB 的数据文件流式传输数据并导入到 Mongo 集合中。该文件已压缩,所以我做了zcat file.gz | mongoimport 我知道我应该在集合中有 454229 个文档。它是空的,文件有 454229 条记录。过程结束后,我试了一次,得到了459680。我清空了集合,重复了这个过程。结果相同。然后我在“_id”列上尝试了 distinct,尝试了 length,得到了 454229。为了确保没有其他进程正在更改数据,我尝试了 count 和 distinct 两次,distinct 后跟 count,然后 count 后跟 distinct。
rs1:PRIMARY> db.amazon_xml_data.distinct("_id").length;
454229
rs1:PRIMARY> db.amazon_xml_data.count({});
459680
rs1:PRIMARY> db.amazon_xml_data.count({});
459680
rs1:PRIMARY> db.amazon_xml_data.distinct("_id").length;
454229
Mongo 版本是 3.2.22。我在日志文件的末尾也有这个文本......
amazon_xml_data 1.11GB
2020-02-15T14:37:07.302+0530 imported 454229 documents
所以我几乎可以肯定count返回的数字是错误的。
【问题讨论】: