3

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

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

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

他们使用限制命令有什么限制吗?

4

1 回答 1

4

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

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

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

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

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

将以相同的方式工作。

于 2014-01-13T14:55:44.903 回答