php - mongoDB 的 $slice 运算符在 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:我只是想访问最后一个数组元素。
解决方案
的签名MongoDB\Collection::findOne()
与“shell”略有不同。它需要"projection"
key$options
作为第二个参数:
$get_current_activity=$this->mongo_b_employee->b_activity->findOne(
array('token_id'=>$token_id),
array(
"projection" => array( "activity_log" => array('$slice' => -1) )
)
)
推荐阅读
- javascript - XMLHttpRequest 问题:跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https
- c - 根据编译器常量用子目录编译 C
- javascript - 对具有 Object 数组的 JavaScript 数组进行排序
- c++ - 如何通过快速排序对链表中的数据进行排序?
- angular - getOne 和 getAll 与本地 Observables 缓存和远程数据库
- python - 如果 a 和 b 之间的条件满足,则更改数组中元素符号的函数
- tensorflow - 如何使用张量流一次性计算精度、召回率、f1 分数、准确率和混淆矩阵
- python - 如何在python中检查汤的类型
- c++ - 为什么我在用 C++ 编写这个文件处理代码后得到空白输出?
- java - 如何在不使用 Arrays.asList() 方法或 Java List Interface 的情况下将数组转换为列表