spring-projects / spring-projects/spring-data-mongodb
Combining two operators in a not operator [DATAMONGO-2499]
Open
@christophstrobl is already working on this.
Since Dec 30, 2020.
in: core
type: bug
- Dominant language
- Java
- Stars
- 1.7k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
Lavoaster opened DATAMONGO-2499 and commented
In trying to recreate this mongo db query:
{
"createdOn": {
$not: {
"$lte": ISODate("2020-20-23T23:59:59.999999999"),
"$gte": ISODate("2020-20-23T00:00"),
}
}
}
with either of the following:
Criteria.where("createdOn")
.not()
.gte(LocalDate.now().atTime(LocalTime.MIN))
.lte(LocalDate.now().atTime(LocalTime.MAX))
Criteria.where("createdOn")
.not()
.gte(LocalDate.now().atTime(LocalTime.MIN))
.not()
.lte(LocalDate.now().atTime(LocalTime.MAX))
I get the following generated output:
{
"createdOn": {
"$not": {
"$gte": {
"$java": "2020-03-23T00:00"
}
},
"$lte": {
"$java": "2020-03-23T23:59:59.999999999"
}
}
}
I've managed to re-do my query using an or operator (thanks to someone on stack overflow), but I feel like I should still be able to produce the above shell code with using the Criteria builder.
No further details from DATAMONGO-2499
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.