获取mongoDB中列的最大值

时间:2013-06-14 12:31:43

标签: mongodb spring-mvc

如何使用弹簧

中的 mongoTemplate 对象获取 mongoDB 中列的最大值

2 个答案:

答案 0 :(得分:1)

我猜你不是在谈论查询syntex。如果您正在讨论编写高性能查询,那么您可以选择在该字段上建立索引。

ensureIndex({ coll-name : 1 })

查询

db.coll.find({}, {coll-name : 1, _id : 0}).sort({ coll-name : -1 }).limit(1)

这将返回一个json,其中包含coll-name的最大值。

答案 1 :(得分:0)

Abhishek的回答并没有解决Spring以及如何在MongoTemplate中解决这个问题。

如果排序字段已编入索引(或@Id字段),Mongo将优化排序/限制组合。否则它仍然相当不错,因为它将使用top-k算法并避免全局排序(mongodb sort doc)。这来自Mkyong's example但我首先进行排序并将限制设置为1秒。 / p>

Query query = new Query();
query.with(new Sort(Sort.Direction.DESC, "idField"));
query.limit(1);
MyObject maxObject = mongoTemplate.findOne(query, MyObject.class);