使用Spring Data的Mongodb查询不会在查询中添加限制

时间:2014-06-05 17:24:23

标签: java mongodb spring-data-mongodb nosql

所以我试图使用附加限制的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。有没有我错过的东西?顺便说一下,查询中的字段是&#34; searchCriteria&#34;的一部分。传入。

1 个答案:

答案 0 :(得分:0)

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

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