$ slice оператор mongoDB не работает в PHP - PullRequest
0 голосов
/ 25 мая 2018

У меня есть запрос 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 голосов
/ 25 мая 2018

Подпись для MongoDB\Collection::findOne() немного отличается от «оболочки».Для этого требуется "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) )
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...