4

一般计数查询将执行

int count = collection.Find(filter).Count();

现在根据过滤器加载所有记录,所以假设我有 100 万条记录,并且在这 50 万条记录中匹配我的过滤器,所以我的集合已经填充了 0.5 个文档。如果您想要文档,这已经足够了,但是如果您只是想知道计数而不真正需要文档,为了记忆起见,该怎么办。

我可以做这样的事情吗

int count = collection.Find(filter).SetLimit(1).Count();

这给了我与第一个表达式相同的计数,但我希望内存不会被用作第一个表达式,帮助我知道在不加载所有文档的情况下找到“计数”的正确方法。谢谢。

4

1 回答 1

10

您需要使用显式CountAsync方法而不是Find

long result = await collection.CountAsync(Builders<Hamster>.Filter.Eq(_ => _.Name, "bar"));
于 2015-09-11T11:30:30.090 回答