MongoDB C# find.count()小于find.ToList().Count()。

问题描述 投票:1回答:2

我知道Javascript也有类似的问题,但是重新索引,并不能改变什么。

这段代码。

                var col = db.GetCollection<BsonDocument>(collectionName);

                var entries = col.Find<BsonDocument>( new BsonDocument() );
                if(_logger.IsDebugEnabled)
                    _logger.Debug($"got collection: \'{collectionName}\' with {entries.Count()} Entries.");


                var list = entries.ToList();
                if(_logger.IsDebugEnabled)
                    _logger.Debug($"{collectionName}-List has {list.Count()} Entries");

带来了结果。

2020-04-23 16:07:44,935 [1] DEBUG got collection: 'MyCollection' with 3884 Entries.
2020-04-23 16:07:45,184 [1] DEBUG MyCollection-List has 3890 Entries 

在MongoDB的命令行中

> db.MyCollection.count();
3884

有谁知道哪里出了问题,就像一开始写的那样,我已经全心全意地尝试重新索引集合,但没有变化。

我使用的c#驱动程序从nuget的版本:2.10.3服务器的版本是MongoDB 4.0.4。

c# mongodb .net-core mongodb-.net-driver
2个回答
1
投票

count 不保证准确,因此已被废弃。请看 文件.

使用 count_documents (在最近的驱动程序中添加)以获得准确的计数。


0
投票

谢谢你! 在命令行中,count()和count_documents()之间存在差异,所以每件事都很清楚。

© www.soinside.com 2019 - 2024. All rights reserved.