php - 数组PHP内的mongodb查询搜索
问题描述
我正在尝试查询 mongodb 中的特定键,但是我一直以空结果结束,而它应该返回 1 条记录。我查看了基本相同的不同问题,但他们的答案对我没有帮助。
例如,我在我的 mongo 中得到了以下结构
{
"_id": {
"$oid": "5bb7388354f02b041b6819b2"
},
"raw": {
"etag": "W/\"CQAAABYADtqt1sMfi5R4onmiTyvUAALqHFp9\"",
"id": "abcdefg"
}
}
我目前已经尝试过以下查询:
$id = "5bb7388354f02b041b6819b2";
$this->collection->find(['_id' => ['$oid' => $id]]);
但是,这会返回错误
unknown operator: $oid
现在无论我尝试什么,它要么返回“未知运算符”,要么什么都不返回。我还尝试切换查询并在 raw 中使用 ID,如下所示。
$id = "abcdefg";
$this->collection->find(['raw' => ['id' => $id]]);
但这对我没有任何回报。所以我想知道,我做错了什么?
解决方案
MongoDB 中的 _id 不是字符串,而是 ObjectId,因此您必须正确传递它才能查询
$this->collection->find(['_id' => new MongoDB\BSON\ObjectID($id)])
推荐阅读
- python - 为随机采样数据帧的脚本编写 PyTest 单元测试?
- xcode - 如何避免 Quick Look Simulator 在每次运行时启动?
- uwp - 是否可以在最小化状态 UWP 下录制音频
- jquery - 如何从 json 数组中获取最后一个 json 对象?
- react-native - 不变违规:模块 AppRegistry 不是注册的可调用模块(调用 runApplication)
- authentication - javax.mail:未经身份验证的发送挂在 Transport.send() 中
- flutter - 哪些小部件用于非模态编辑?
- ddev - 如何在边车容器中使用 node-sass scss 在 ddev 项目中自动构建 CSS?
- c# - Blazor select-like 组件不更新数据源中的值
- javascript - 如何从在 switch case 语句中运行的函数返回值?