Как использовать $ month как часть логических операторов в MongoDB в Java? - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть документ {_id: abc, orderdate:(ISO date), quantity:10}, и я пытаюсь найти запрос на Java, где мы ищем все документы с заказами за данный месяц, чей quantity равен > 5 Например: select * from documents where month(orderdate)=Jan and quantity>5

Можете ли вы помочь мне написать этот запрос на Java?

1 Ответ

0 голосов
/ 19 сентября 2018

После перехода на Поиск по месяцам в MongoDB

Я узнал о $ expr из db.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")))

...