Dev*_*xon 6 php datetime mongodb
在升级到新的Mongo Driver for PHP之后,我面临着排序和查询日期的问题.
使用的旧驱动程序:http://php.net/manual/en/class.mongodate.php,它在几秒钟内将日期存储在MongoDate对象中.
新驱动程序:http://php.net/manual/en/class.mongodb-bson-utcdatetime.php以不同的格式存储日期并以毫秒为单位存储它.
已经渲染了$ gte或$ lte无用的查询.例:
$collection -> find(array('start_date' => array('$gte' => new MongoDate())));
$collection -> find(array('start_date' => array('$gte' => new MongoDB\BSON\UTCDateTime())));
Run Code Online (Sandbox Code Playgroud)
这两个不会返回相同的结果.有了所有旧数据,我怎样才能安全地查询MongoDate和UTCDateTime?
您需要以毫秒而不是秒为单位传递时间,一切都会像以前一样继续工作:
$time = time();
$cursor = $collection->find(['start_date' => ['$gte' => new MongoDB\BSON\UTCDateTime($time * 1000)]]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1909 次 |
| 最近记录: |