如何使用弹簧
中的 mongoTemplate 对象获取 mongoDB 中列的最大值答案 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);