2016-05-03 2 views
1

Я хочу найти _id с помощью execQuery mongodb driver php.Mongodb php search using _id дает ошибки

Вот мой документ структура пользователей коллекция

{ 
    "_id" : ObjectId("55ad0bd1032e1b12088b46a8"), 
    "email" : "[email protected]" 
} 

И мой 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 Fatal error: Uncaught exception 'MongoDB\Driver\Exception\ConnectionException' with message '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} thrown in test.php on line 27

Любой Помогите?

+0

Это странно, что это ConnectionException. Какая строка 27? Также, поскольку вы используете расширение php MongoDB (а не расширение Mongo), вы должны использовать '' ObjectID'' вместо MongoId. http://php.net/manual/en/class.mongodb-bson-objectid.php –

ответ

2

Как Per прим @Felipe Сульсер

Линия

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

должен быть

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

Сейчас он работает