Details
-
Bug
-
Resolution: Gone away
-
Major - P3
-
None
-
None
-
None
-
None
Description
I'm trying to query documents with a date lesser than or equal to a given query date.
Here's the query as written in a Spring Data repository (Java):
{
|
'subscriptionPeriodStart': { $lte: ?0 }, |
'nStickers': { $gt: 0 }, |
'status': { $nin: [ 'Canceled', 'Refunded' ] } |
}
|
"?0" being the first parameter passed to the repository's method, of type java.util.Date.
The query is translated by the driver into this query:
db.bill.find({
|
"subscriptionPeriodStart" : { "$lte" : 1608422400000}, |
"nStickers" : { "$gt" : 0}, |
"status" : { "$nin" : [ "Canceled", "Refunded" ] } |
})
|
The result of the query is on screenshot "screen 2". No documents are returned.
I rewrote the same query using another syntax:
db.bill.find({
|
"subscriptionPeriodStart" : { "$lte" : ISODate("2020-12-20T00:00:00.000Z")}, |
"nStickers" : { "$gt" : 0}, |
"status" : { "$nin" : [ "Canceled", "Refunded" ] } |
})
|
And the documents are returned (screenshot "screen 2").
Is this a bug or a feature?
Environment:
- MongoDB: v3.6.17
- Java driver: org.mongodb/mongo-java-driver v3.11.2
- Spring Data: org.springframework.data/spring-data-mongodb v2.2.4.RELEASE
- Java JDK v1.8.0_261
Thanks!