我有这个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:我只是想访问最后一个数组元素。
答案 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) )
)
)