Mongo C# 驱动程序 2.0 - 在不获取文档的情况下查找计数
Mongo C# driver 2.0 - Find count without fetching documents
一般计数查询将执行
int count = collection.Find(filter).Count();
现在根据过滤器加载了所有记录,假设我有 100 万条记录,其中 50 万条记录与我的过滤器匹配,所以我的集合中已经填充了 0.5 个文档。如果您想要文档,这就足够了,但是如果您只是想知道计数而不是真的需要文档,为了记忆起见,该怎么办。
我可以这样做吗
int count = collection.Find(filter).SetLimit(1).Count();
这给了我与第一个表达式相同的计数,但我希望内存不会被用作第一个表达式,帮助我知道在不加载所有文档的情况下找到 "count" 的正确方法。谢谢
您需要使用明确的 CountAsync
方法而不是 Find
:
long result = await collection.CountAsync(Builders<Hamster>.Filter.Eq(_ => _.Name, "bar"));
一般计数查询将执行
int count = collection.Find(filter).Count();
现在根据过滤器加载了所有记录,假设我有 100 万条记录,其中 50 万条记录与我的过滤器匹配,所以我的集合中已经填充了 0.5 个文档。如果您想要文档,这就足够了,但是如果您只是想知道计数而不是真的需要文档,为了记忆起见,该怎么办。
我可以这样做吗
int count = collection.Find(filter).SetLimit(1).Count();
这给了我与第一个表达式相同的计数,但我希望内存不会被用作第一个表达式,帮助我知道在不加载所有文档的情况下找到 "count" 的正确方法。谢谢
您需要使用明确的 CountAsync
方法而不是 Find
:
long result = await collection.CountAsync(Builders<Hamster>.Filter.Eq(_ => _.Name, "bar"));