【问题标题】:Mongodb query using Spring Data does not add limit in the query使用 Spring Data 的 Mongodb 查询不会在查询中添加限制
【发布时间】:2014-06-05 17:24:23
【问题描述】:

所以我正在尝试使用附加了限制的 Spring 数据进行 mongodb 查询。我注意到 Spring 数据不会对查询本身添加限制,而是获取所有数据,在 Java 端对其执行限制,然后返回有限的结果。这是真的还是我在这里的代码中做错了什么。

Criteria criteria = queryBuilder.getQuery(searchCriteria);
        Query query = new Query(criteria);
        query.limit(500);
        logger.Debug("Query: " + query);
        if (query.getQueryObject() != null){
            resultSet = (List<T>) _mongoDb.find(query, model.getClass(), _collectionName);

        }

我在日志中看到的查询是这样的:

Query: Query: { "$or" : [ { "PARTY" : { "$elemMatch" : { "PARTY_ID" : "32135"}}} , { "ABBR_NUM" : "6873"} , { "ANN_ABBR_NUM" : "6873"}]}, Fields: null, Sort: null

我没有看到此查询附加了 500 个限制。有什么我错过的吗?顺便说一句,查询中的字段是传入的“searchCriteria”的一部分。

【问题讨论】:

    标签: java mongodb spring-data-mongodb nosql


    【解决方案1】:

    您的日志语句只是记录查询。在幕后,限制实际上被应用于游标,因此您不会使用该日志语句看到它。

    尝试using the MongoDB profiler(设置配置文件级别 2)然后查询 system.profile 集合,您将看到您的限制实际应用于查询,由配置文件记录中的 ntoreturn 字段指示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多