Mongo
里现有一批数据,大致结构如下:
{"userId":1,"loginTime":ISODate("2017-11-28T10:47:57.525+08:00")}
{"userId":2,"loginTime":ISODate("2017-11-28T11:47:57.525+08:00")}
{"userId":1,"loginTime":ISODate("2017-11-28T12:47:57.525+08:00")}
{"userId":3,"loginTime":ISODate("2017-11-28T13:47:57.525+08:00")}
要按
userId
字段去重后统计总数,示例数据返回结果应该是:3,在
SHELL
中可以使用
db.logins.distinct("userId").length
来查询,但在
spring-data-mongo
中使用
MongoTemplate
怎样实现相同功能,注意不能使用
distinct
把结果都查出来后取
size
,实际的数量级可能比较大,如千万级别。
另外听说
Mongo
中
distinct
结果集不能超过
16MB
(不确定),那么上面
SHELL
中的用法应该也会有问题。
整个需求可以简单描述为:查询每日登录人数(注意不是人次)