所以我试图使用附加限制的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;的一部分。传入。
答案 0 :(得分:0)
您的日志语句只是记录查询。在幕后,限制实际上应用于光标,因此您不会使用该日志语句来查看它。
尝试using the MongoDB profiler(设置配置文件级别2),然后查询system.profile集合,您将看到您的限制实际应用于查询,由配置文件记录中的ntoreturn
字段指示。