我想检查是否有数据或记录,例如:检查员工是否有请假数据。
使用spring数据mongo,最好的方法是什么?
我检查了一下,看来我无法做类似.limit(1)
或findBy...Limit
的事情。
我现在只想到的是:findFirstBy...
或countBy...
我想要一个更快的表,我将要检查的表具有大约1M数据。
是否有更好的方法来检查? (findFirst vs countBy vs BETTER)?
顺便说一句,在我的大桌子上……我有一些索引。 Spring数据mongodb是否可以在使用索引的同时获取记录数?
查找优先与计数依据:
使用我近3M的数据并比较findFirstBy
与countBy
之间的速度,findFirstBy
比countBy
快得多。带有上述集合的示例...查找首先执行(0.3s),而执行一次计数(3s)。这只是示例执行上的差异,但是想法是……“首先发现”比“求和”要快。
谢谢!
答案 0 :(得分:2)
您无需指定要使用的索引。默认情况下,Mongo将根据匹配的列使用索引。 确保在请假列上有索引以加快查询速度。
findFirst
限制(1)
计数
要更好地理解这些操作,请尝试对查询运行Explain。
请注意-查询性能与客户端调用查询无关。