如何用动态日期变量在核心PHP中编写MongoDB查询?

时间:2016-06-20 05:47:53

标签: php mongodb

我在mongoDB中创建了查询。在MongoChef中,此查询生成超过1万条记录。现在我想在PHP中执行此查询。所以我不知道如何用动态日期在php中编写查询? 我在mongoDB中的查询

    db.PMS.aggregate(
 [
    { $match: { "EventTS":{$gt:new Date("2015-01-01")}}},
    ]
);

现在我尝试使用pass动态日期变量

在PHP中进行转换
    <?php    
$mongo = new MongoClient();    
$database = $mongo->securens_final;
$collection = $database->PMS;    
$start_date  = new MongoDate(strtotime('2015-01-01 00:00:00'));    
$pipeline = [
    [
        '$match' => [
            'EventTS' => ['$gt', $start_date]
        ]
    ]
];

$cursor = $collection->aggregate($pipeline);
echo "<pre>";
print_r($cursor);exit;
?>

使用此查询后,我得到了这样的回复

    Array
(
    [waitedMS] => 0
    [result] => Array
        (
        )

    [ok] => 1
)

我不知道我的错误是什么。任何人都可以建议我如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

Cursor不包含任何数据,它会根据您的需要获取数据(例如,当您遍历结果时)。如果您需要预先提供所有数据,则需要使用$data = iterator_to_array($cursor)