Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MongoDB文档的最大/最小值_Spring_Mongodb_Spring Data_Nosql - Fatal编程技术网

Spring MongoDB文档的最大/最小值

Spring MongoDB文档的最大/最小值,spring,mongodb,spring-data,nosql,Spring,Mongodb,Spring Data,Nosql,我正在使用Spring数据访问MongoDB数据库。 如何使用MongoTemplate类检索其中一个字段中具有最大值的文档。 谢谢 使用排序和限制的组合来模拟最小值和最大值: db.test.insert({a:1}) db.test.insert({a:2}) db.test.insert({a:3}) db.test.find().sort({a:1}).limit(1) db.test.find().sort({a:-1}).limit(1) 排序({a:1})是对a字段的升序(最小优先

我正在使用Spring数据访问MongoDB数据库。 如何使用MongoTemplate类检索其中一个字段中具有最大值的文档。
谢谢

使用排序和限制的组合来模拟最小值和最大值:

db.test.insert({a:1})
db.test.insert({a:2})
db.test.insert({a:3})
db.test.find().sort({a:1}).limit(1)
db.test.find().sort({a:-1}).limit(1)
排序({a:1})是对a字段的升序(最小优先)排序,然后只返回第一个文档,这将是该字段的最小值。
排序({a:-1})是对a字段的降序(最大优先)排序,然后只返回第一个文档,这将是该字段的最大值


林库的回答是正确的,但不是春天。您可以在SpringDataMongoDB中执行此操作。如果排序字段(或@Id字段)被索引,Mongo将优化排序/限制组合。否则它仍然很好,因为它将使用top-k算法并避免全局排序(.这是从,但我首先进行排序,并将限制设置为1秒

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

这是命令行命令,但我使用Java+Spring数据。谢谢!你能得到这个问题的答案吗?因为我需要完全相同的。嗨。请解释一下,你想做什么,我会尽力帮助你。你在使用存储库吗?嗨。我不记得了,三年后