mongoDB的$ slice运算符在PHP中不起作用

时间:2018-05-25 08:04:31

标签: php mongodb

我有这个mongoDB查询:

db.b_activity.find(
    {token_id:"71e32267108b163ccdd3f59ba06c66674b295499"},
    {activity_log:{$slice: -1}}
).pretty();

它在mongoDB终端中获得了所有期望的结果,但是当我在PHP中编写相同的查询时,它每次都会获取完整的数组。

我的PHP查询:

$get_current_activity = $this->mongo_b_employee->b_activity->findOne(
    array('token_id'=>$token_id),
    array("activity_log" => array('$slice' => -1))
);

我做错什么的任何建议?

PS:我只是想访问最后一个数组元素。

1 个答案:

答案 0 :(得分:0)

MongoDB\Collection::findOne()的签名与" shell"略有不同。它需要"projection"中的$options键作为第二个参数:

$get_current_activity=$this->mongo_b_employee->b_activity->findOne(
    array('token_id'=>$token_id),
    array(
      "projection" => array( "activity_log" => array('$slice' => -1) )
    )
)