gpt4 book ai didi

java - 如何在java中构建嵌套的MongoDB查询?

转载 作者:行者123 更新时间:2023-12-02 09:51:34 24 4
gpt4 key购买 nike

我正在尝试将可用的 Mongo Shell 查询转换为 java,但似乎我遇到了困难。我正在使用 mongo-java-driver:3.9.1。 shell 查询如下所示:

db.getCollection('xyz').find({source_id: ObjectId("abc"), timestamp: {
$gte : ISODate("2019-04-05 18:24:00.000Z"),
$lt: ISODate("2019-04-05 18:30:00.000Z")
}
})

查询包括两个条件:匹配的 source_id 和两个给定日期之间的时间戳。

我的 Java 查询如下所示(startDate 和 endDate 是格式化日期):

FindIterable<Document> cursor = collection.find(and(eq("source_id", new ObjectId("abc"))), and(gte("timestamp", startDate), lt("timestamp", endDate)));

Intellij 给我消息:“无法解析方法 'find(org.bson.conversions.Bson, org.bson.conversions.Bson)”。这是一个逻辑错误,还是不可能构建这样的过滤器?

最佳答案

您缺少一个:

FindIterable<Document> cursor = collection.find(and(and(eq("source_id", new ObjectId("abc"))), and(gte("timestamp", startDate), lt("timestamp", endDate))));

总体思路是:将每个 { 视为一个包含 and 的语句。

关于java - 如何在java中构建嵌套的MongoDB查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56289314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com