MongoShell DB запрос строки даты не работает - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь выполнить запрос к моей базе данных в поле date_recorded , но запрос не дает результатов. Я использую MongoShell и также пробовал его в Compass.


Я пробовал варианты $ eq с ISODate и Дата:

db.my_collection.find({ "date_recorded": { "$eq":  new ISODate("2017-06-09T01:27:33.967Z") }}).count()

Я также пробовал варианты $ gte с ISODate и Дата :

db.my_collection.find({ "date_recorded": { "$gte":  new Date("2017-06-09T01:27:33.967Z") }}).count()

Запись находится в БД, обратите внимание на подсвеченное поле

Record is in the db, notice the highlighted field

1 Ответ

1 голос
/ 15 октября 2019

Как сказал @JohnnyHK, date_recorded - это строка. Чтобы сделать сравнение, нам нужно либо преобразовать date_recorded в дату, либо сравнить со строкой.

Следующие запросы могут дать нам ожидаемый результат:

db.my_collection.find({ 
    "date_recorded": { 
        $eq:"2017-06-09T01:27:33.967Z" 
    }
}).count()
db.my_collection.find({ 
    $expr:{
        $eq:[
            {
                $toDate:"$date_recorded"
            },
            new ISODate("2017-06-09T01:27:33.967Z")
        ]
    }
}).count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...