首页 > 解决方案 > 如何在 Java 中使用 $month 作为 MongoDB 中逻辑运算符的一部分?

问题描述

我有一个文档{_id: abc, orderdate:(ISO date), quantity:10} ,我正在尝试在 Java 中提出查询,我们在其中搜索给定月份中具有订单的所有文档,quantity例如> 5select * from documents where month(orderdate)=Jan and quantity>5

你能帮我用Java写这个查询吗?

标签: mongodb-queryaggregation-frameworkmongodb-java-3.3.0

解决方案


MongoDB 中按月搜索后

我从中了解了 $exprdb.customer.find({ "$expr": { "$eq": [{ "$month": "$bday" }, 9] } })并转换为

db.getCollection('customer').find({
"$and":[{"$expr": { "$eq": [{ "$month": "$bday" }, 9] }},{"firstName":"John"}]
})

然后使用获取java代码

Document.parser("db.getCollection('custoer').find({"$and":[{"$expr": { "$eq": [{ "$month": "$bday" }, 9] }},{"firstName":"John"}]})")

最后java代码看起来像

Filters.and(Arrays.asList(Filters.expr(new Document().append("$in", Arrays.asList(new Document().append("$month", "$bday"),9))),Filters.eq("firstName","John")))


推荐阅读