1

我想通过使用 executeQuery mongodb driver php 来搜索 _id。

这是我的用户集合的文档结构

{
    "_id" : ObjectId("55ad0bd1032e1b12088b46a8"),
    "email" : "abc@abc.com"
}

我的php代码是

<?php
//Getting object id
$id = new MongoId("55ad0bd1032e1b12088b46a8");
//filtering 
$filter = ['_id' =>$id];

$options = [];

// Adding query
$query = new MongoDB\Driver\Query($filter, $options);

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$cursor = $manager->executeQuery('db.users', $query);

当我运行它时,出现以下错误

PHP 致命错误:未捕获的异常 'MongoDB\Driver\Exception\ConnectionException' 带有消息 'unknown operator: $id' in /test.php:27 Stack trace: 0 /test.php(27): MongoDB\Driver\Manager-> executeQuery('db.users', Object(MongoDB\Driver\Query)) 1 {main} 在第 27 行的 test.php 中抛出

有什么帮助吗?

4

1 回答 1

3

根据@Felipe Sulser 的评论

线

$id = new MongoId("55ad0bd1032e1b12088b46a8");

应该

$id = new MongoDB\BSON\ObjectId("55ad0bd1032e1b12088b46a8");

现在它正在工作

于 2016-07-29T12:56:03.317 回答