what type tipos name first datos data collection bsontype php mongodb mongodb-php

php - type - Encuentre un documento con ObjectID en mongoDB



tipos de datos mongodb (2)

Bastante seguro de que tiene que usar un objeto MongoId , por ejemplo

$item = $collection->findOne(array( ''_id'' => new MongoId(''4e49fd8269fd873c0a000000'')));

Las notas en la página de Preguntas son un poco obtusas pero mencionan ...

A menos que el usuario haya especificado lo contrario, el campo _id es un MongoId. El error más común es el de utilizar una cuerda para unir MongoId. Tenga en cuenta que estos son dos tipos de datos diferentes, y no coincidirán entre sí de la misma manera que la cadena "array ()" no es lo mismo que una matriz vacía

Cuando inserté algunos documentos en una colección (sin un ObjectID), mongoDB agrega sus propios ObjectID.

Quiero consultar un documento por su ObjectID único.

$db->collection_name->find(array(''_id''=>''4e49fd8269fd873c0a000000'')));

Tampoco funciona con el prefijo de MongoID o ObjectID delante de ''4e49fd8269fd873c0a000000''.

¿Cuál es la forma correcta de consultar por ObjectID con mongoDB en PHP?


Creo que ahora la API cambia a MongoDB/BSON/ObjectID , también puede usar [] para denotar una matriz en PHP 5.4+, por lo que debería ser:

$item = $collection->findOne([''_id'' => new MongoDB/BSON/ObjectID( idToken )]);

basado en la respuesta de Phil.