代码之家  ›  专栏  ›  技术社区  ›  Ikhlak S. Shantanu Sharma

PHP MongoDB库findOne不返回任何内容

  •  0
  • Ikhlak S. Shantanu Sharma  · 技术社区  · 8 年前

    我试图从数据库中按ID返回单个文档。 这就是我现在拥有的。

    $id = "5a30ff2c3afc720394000ac2";
    $collection = (new \MongoDB\Client(DB_HOST))->DB->posts;
    $post = $collection->findOne(['_id' => $id]);
    

    findOne() find() 似乎在起作用。MongoDB documentations提到,如果找不到任何文档,它将不会返回任何内容。然而,该文档似乎确实在我的数据库中。

    我还尝试了PHP MongoDB文档示例。

    $post = $collection->findOne(['_id' => new \MongoId($id)]);
    

    这将返回“未找到类”错误。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Dhayal Ram    8 年前

    默认情况下,Mongo将\u id存储为对象

    试试这个

    $collection->findOne(['_id'=> new \MongoDB\BSON\ObjectId("$mongoId")]);
    

    您使用的是MongoDB驱动程序,但使用的是Mongo驱动程序对象。

    推荐文章