MongoDB Java使用多个过滤器并获得最后一个

在我的收藏中,文档如下所示:

https://img2.mukewang.com/5cde1bfa0001e98105190135.jpg

我通过这样做设法获得最后插入的文档:

collection.find().sort(new Document("date",-1)).first().getDate()

但是现在我需要获得最后一个日期并且具有特定值functionalityName。我被卡住了,因为我不知道如何修改它以考虑两个过滤器。我怎么做?
我看过Mongo中的多个过滤器,但由于我不是在寻找特定的日期,而是为了更大的日期(最后一个),我不知道如何与其他过滤器一起指定。


UYOU
浏览 1069回答 2
2回答

呼唤远方

听起来你想要一个过滤器和一个排序,查询将如下所示:collection.find(Filters.eq("functionalityName", "specificValue"))           .sort(new Document("date",-1))           .first()           .getDate()因此,sort零件保持原样,但在find添加过滤器的部分中。您还需要导入Filters类:import com.mongodb.client.model.Filters.*;或者,您可以Filters为了简洁而静态导入类,这是官方过滤器文档中的示例的完成方式,如果您需要添加其他过滤器,可能需要查看这些示例。import static com.mongodb.client.model.Filters.*;// ...collection.find(eq("functionalityName", "specificValue"))       .sort(new Document("date",-1))       .first()       .getDate()

白衣染霜花

的级联find,sort等等肯定的作品,但只有find()其实是在数据库端执行,它将返回的结果,然后进行排序将您的应用程序就可以使用。如果要创建执行所有这些操作数据库端的查询,则需要管道。要做到这一点,你可以使用java驱动程序的聚合框架,让你做这样的事情collection.aggregate(       Arrays.asList(               match(eq("functionalityName", "specificValue")),               sort(descending("date")),               project(fields(include("date")))       ))在文档中,您可以找到可以应用于管道的所有阶段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java