dongliechuich10319 2018-05-25 08:04
浏览 77
已采纳

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

I have got this mongoDB query:

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

It gets all the desired results in the mongoDB terminal, but when I write the same query in PHP, it fetches the complete array every time.

MY PHP query:

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

Any suggestions where I am doing something wrong?

PS: I am just trying to access the last array element.

  • 写回答

1条回答 默认 最新

  • 普通网友 2018-05-25 08:12
    关注

    The signature for MongoDB\Collection::findOne() is slightly different from the "shell". It requires the "projection" key in the $options as the second argument:

    $get_current_activity=$this->mongo_b_employee->b_activity->findOne(
        array('token_id'=>$token_id),
        array(
          "projection" => array( "activity_log" => array('$slice' => -1) )
        )
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?