存储所有查询的查询计数



我正在寻找一种方法来缓存计数()的每一个唯一的查询,我对每一个集合。以便可以快速检索计数。

是否存在数据存储位置的最佳实践?

例如

db.getCollection("col1").find(query1).count()—>890

db.getCollection("col1").find(query2).count()—>22100

db.getCollection("col2").find(query3).count()—>4

db.getCollection("col2").find(query4).count()—>901

一个特殊的集合与所有查询和他们各自的计数是一个好主意,还是我应该把它保存在每个集合等?

Using $count:

db.collection.aggregate([
// Other stages here
{ $count: "Total" }
])

对于获取1000条记录,这平均花费2毫秒,是最快的方法。

使用。itcount():

db.collection.aggregate([...]).itcount();

对于获取1000条记录,平均需要14 ms.

相关内容

最新更新