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) )
        )
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 CSS实现渐隐虚线框
  • ¥15 有没有帮写代码做实验仿真的
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真