【问题标题】:MongoTemplate Limit query issueMongoTemplate 限制查询问题
【发布时间】:2017-08-12 17:48:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: count find limit


    【解决方案1】:

    Limit 工作正常(至少在我使用的 Spring Data 版本 1.2.1 上)。可能是您的版本有问题?

    关于count,有一个特定的方法可以获取你的collection count,所以你不需要关心你的系统会获取多少数据:

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

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

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

    将以同样的方式工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-28
      • 2019-07-27
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多