bugfix> php > 投稿

私はこの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 件
  • MongoDB\Collection::findOne() の署名  「シェル」とは少し異なります。 "projection" が必要です   $options のキー  2番目の引数として:

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

あなたの答え