MongoDB:count 结果不准确的原因与解决方法 您所在的位置:网站首页 hgg准不准确 MongoDB:count 结果不准确的原因与解决方法

MongoDB:count 结果不准确的原因与解决方法

2024-07-16 10:13| 来源: 网络整理| 查看: 265

教训:MongoDB 在分片后的集合上进行 db.collection.count() 操作时,出现结果不准确的现象,需要采用聚合的方法获取集合的 count 结果

插入数据后,使用 Studio 3T 查看数据量时,发现显示的 count 结果与插入的数据不一致,偶然会多出几条或十几条

通过谷歌发现,官方文档——( https://docs.mongodb.com/manual/reference/method/db.collection.count/ )中有解释这种现象:

On a sharded cluster, db.collection.count() can result in an inaccurate count if orphaned documentsexist or if a chunk migration is in progress.

To avoid these situations, on a sharded cluster, use the $group stage of the db.collection.aggregate() method to $sum the documents. For example, the following operation counts the documents in a collection:

db.collection.aggregate( [ { $group: { _id: null, count: { $sum: 1 } } } ] )

官方文档解释了这种现象的原因以及解决方法:不准确的原因:

操作的是分片的集合;shard 分片正在做块迁移,导致有重复数据出现存在孤立文档(因为不正常关机、块迁移失败等原因导致)

解决方法: 使用聚合 aggregate 的方式查询 count 数量,命令如下:

db.collection.aggregate( [ { $group: { _id: null, count: { $sum: 1 } } } ] )

via:https://www.jianshu.com/p/c0a351927e69



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有