MongoTemplate限制查询问题

时间:2013-09-12 06:44:40

标签: count find limit

我使用MongoTemplate来执行我的Mongo查询。 我想知道count是否适用于限制集?

同样为什么查找搜索完整集合(根据查询)虽然设置了限制? 对于例如我写的查询可能会导致10000条记录,但我只想要100条记录,为此我已将限制设置为100,然后触发查找查询。但仍然查询继续搜索完整的10000条记录。

dataQuery.limit(100);
List<logs> logResultsTemp = mongoTemplate1.find(dataQuery, logs.class);

使用limit命令有任何限制吗?

1 个答案:

答案 0 :(得分:3)

限制工作正常(至少在我使用的spring数据版本1.2.1上)。也许这是你的版本的问题?

关于count,有一种特定的方法可以计算您的收集数量,因此您无需关心系统将获取的数据量:

mongoTemplate.count(new Query(), MyCollection.class)

顺便说一句,如果你直接在你的mongodb控制台上尝试这个:db.myCollection.limit(1).count(),你将获得你的集合中的实际文档总数,而不仅仅是一个。这是mongoTemplate.count方法所以:

mongoTemplate.count(new Query().limit(1), MyCollection.class)

将以同样的方式工作。