MongoDB, использующий UTCDateTime в $ gte, не работает - PullRequest
0 голосов
/ 16 мая 2018

Я пишу запрос для поиска пользователей, созданных на определенную дату, например,

$date = '2018-05-02 15:46:41.000Z';
User::raw(function ($col) use($date) { 
   return $col->aggregate([
        ['$match' =>
            'created_at' => ['$gte' => new \MongoDB\BSON\UTCDateTime(strtotime($date))]
        ]
    ]);
});

Приведенный пример данных, таких как

{
  "_id" : ObjectId("5ae9dd61ef7a5754f159c656"),
  "name" : "Effie Larkin",
  "created_at" : ISODate("2018-05-02 15:46:41.000Z"),
}...

Ожидаемый результат должен быть

{
  "users" : [
        "_id" : {"$oid": "5ae9dd61ef7a5754f159c656"},
        "name" "Effie Larkin",
        "created_at" : "2018-05-02 15:46:41"
   ]
}...

Но я получаю пустой массив json []. Я думаю, что проблема в функции UTCDateTime, но я не знаю, как передать ей dateTime. Я хочу пройти интервал времени, например, 1 неделю назад или вчера и т. Д. Если кто-то может мне помочь, мы будем очень признательны, спасибо

Обновление, пример ниже исправил это

$date = '2018-05-02';
User::raw(function ($col) use($date) { 
   return $col->aggregate([
        ['$match' =>
            'created_at' => ['$gte' => new \MongoDB\BSON\UTCDateTime(strtotime($date)*1000)]
        ]
    ]);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...