我正在寻找一种方法来缓存计数()的每一个唯一的查询,我对每一个集合。以便可以快速检索计数。
是否存在数据存储位置的最佳实践?
例如
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.