Java 使用Spring数据的Mongodb查询没有在查询中添加限制

Java 使用Spring数据的Mongodb查询没有在查询中添加限制,java,mongodb,spring-data-mongodb,nosql,Java,Mongodb,Spring Data Mongodb,Nosql,因此,我尝试使用带有限制的Spring数据执行mongodb查询。我注意到Spring数据并没有向查询本身添加限制,而是获取所有数据,在Java端对其执行限制,然后返回有限的结果。这是真的还是我的代码有问题 Criteria criteria = queryBuilder.getQuery(searchCriteria); Query query = new Query(criteria); query.limit(500); logger.Deb

因此,我尝试使用带有限制的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);

        }

我认为这个查询没有500个限制。我错过了什么吗?顺便说一下,查询中的字段是传入的“searchCriteria”的一部分。

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

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

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