Запрос ISODate MongoDB с переполнением стека

Я пытаюсь получить данные из коллекции Монго на основе даты, я хочу получить данные, где дата больше или равна дате текущего дня (то есть, дата под полем данных). Однако я не могу понять, почему мой запрос ничего не возвращает (пустой объект Монго). Ниже мой код:

Структура массива / содержание:

{
"_id" : ObjectId("990093409187049704809d"),
"type" : "number 1 champion",
"entryDate" : ISODate("2016-05-12T10:55:55.000+0000"),
"requester" : {
"cn" : "Torgue",
"username" : "tg"},
"data" : {
"office" : "Badass Crater of Badassitude",
"name" : {
"firstname" : "Salvador",
"middlename" : "A",
"surname" : "Gunzerker"},
"date" : ISODate("2016-05-23T23:00:00.000+0000"),
},
"index" : "1"}

PHP-запрос:

$today =  date(DATE_ISO8601, (new MongoDate())->sec);
$str = $col1->find(array('type' => 'number 1 champion', 'data.date'=>array ('gte'=>$today)));
print_r($str);

Пожалуйста, кто-нибудь может указать мне правильное направление или объяснить мне, что делать, чтобы получить правильный результат.

Для тех, у кого такая же проблема, ниже решение:

$query = array('type' => 'number 1 champion', 'data.date'=>array ('$gte'=>new mongoDate()));
$str = $col1->find($query);

затем цикл для просмотра результатов:

echo '<pre>';
foreach($str as $doc){
print_r($doc);
}

1

Решение

Вы должны использовать MongoDate объект для запроса.

Для текущей даты вы можете использовать new MongoDate() которые заставляют MongoDate инициализироваться с текущей датой

Если вы хотите передать некоторую пользовательскую дату, вы можете использовать strtotime для преобразования типа String в Date

$stringtime = "2016-04-09 00:00:00"
$inputdate = strtotime($stringtime)

и затем, наконец, передать его в конструктор MongoDate, чтобы получить соответствующий объект.

new MongoDate($inputdate)

обращаться PHP Документы

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]