一般计数查询将执行
int count = collection.Find(filter).Count();
现在按照过滤器加载所有记录,所以我说我有100万条记录,其中有50万条与我的过滤器匹配,所以我的集合已经填充了0.5个文档。如果你想要这些文件,这已经足够了,但是如果你只是想知道计数而不是真的需要这些文件,那就好了。
我可以做这样的事吗
int count = collection.Find(filter).SetLimit(1).Count();
这给了我与第一个表达式相同的计数,但是我希望内存不会被用作第一个表达式,帮助我知道正确的方法来找到" count"没有加载所有文件。感谢。
答案 0 :(得分:10)
您需要使用明确的CountAsync
方法,而不是Find
:
long result = await collection.CountAsync(Builders<Hamster>.Filter.Eq(_ => _.Name, "bar"));