首页 > 解决方案 > 数组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]]);

但这对我没有任何回报。所以我想知道,我做错了什么?

标签: phpmongodbmongodb-query

解决方案


MongoDB 中的 _id 不是字符串,而是 ObjectId,因此您必须正确传递它才能查询

$this->collection->find(['_id' => new MongoDB\BSON\ObjectID($id)])

推荐阅读