Идеальным решением было бы сохранить дату как тип даты вместо строки, и ваш запрос будет работать нормально.
{
"_id" : ObjectId("xxxxxxxxx..."),
"userId" : "4",
"pId" : "365",
"subject" : "hello",
"description" : "testing",
"status" : "0",
"status_description" : "",
"created_date" : ISODate("2018-08-25T00:00:00Z") //YYYY-mm-ddTHH:MM:ssZ
}
Если сохранение даты не доступно, вы можете использовать приведенный ниже запрос для преобразования строки даты в дату, используя $dateFromString
и $expr
, доступные в версии 3.6.
{$dateFromString: { dateString: "25-08-2018",format: "%d-%m-%Y"}}
Запрос Mongodb:
db.colname.find({$expr:{$and:[{'$gte':[{'$dateFromString':{'dateString':'$created_date',format: '%d-%m-%Y'}},startDate]}, {'$lte':[{'$dateFromString':{'dateString':'$created_date',format: '%d-%m-%Y'}},endDate]}]}})