如何在春季使用 mongoTemplate 对象获取mongoDB中列的最大值
问问题
964 次
2 回答
1
我猜你不是在谈论查询语法。如果您正在谈论编写高性能查询,那么您可以选择在该字段上建立索引。
ensureIndex({ coll-name : 1 })
询问
db.coll.find({}, {coll-name : 1, _id : 0}).sort({ coll-name : -1 }).limit(1)
这将为您返回一个具有 coll-name 最大值的 json。
于 2013-06-14T15:51:03.807 回答
0
Abhishek 的回答没有解决 Spring 以及如何在 MongoTemplate 中执行此操作。
如果排序字段被索引(或@Id 字段),Mongo 将优化排序/限制组合。否则它仍然很好,因为它将使用 top-k 算法并避免全局排序(mongodb sort doc)。这是来自Mkyong 的示例,但我先进行排序并将限制设置为一秒。
Query query = new Query();
query.with(new Sort(Sort.Direction.DESC, "idField"));
query.limit(1);
MyObject maxObject = mongoTemplate.findOne(query, MyObject.class);
于 2016-10-11T17:06:13.340 回答