2011-01-11 17 views
8

Tengo que encontrar un tipo de "_id" en mi Mongo, puedo hacerlo usando el shell de Mongo, y no se puede hacer eso usando Perl API.cómo usar "buscar" para buscar "_id => OBjectID (" id ")" en Perl API

Estoy tratando de hacerlo (consola mongo):

./mongo 
use my_db 
db.my_collection.find({_id : ObjectId("4d2a0fae9e0a3b4b32f70000")}) 

Funciona (retornos), pero no puedo hacer que el uso de la API de Perl,

$mongo->my_db->my_collection(find({_id => "ObjectId(4d2a0fae9e0a3b4b32f70000"})); 

no lo hace! trabajar porque "oBJECTID" no es una cadena, pero si lo hace,

./mongo 
use my_db 
db.my_collection.find({_id : "ObjectId(4d2a0fae9e0a3b4b32f70000)"}) 

no funciona también, supongo que estoy API Perl están haciendo^

Ahora, tengo que saber cómo lo hago:

db.my_collection.find({_id : ObjectId("4d2a0fae9e0a3b4b32f70000")}) 

usando API Perl.

Respuesta

8

La aplicación parece haber cambiado.

$mongo->my_db->my_collection(
    find({ _id => MongoDB::OID->new(value => "4d2a0fae9e0a3b4b32f70000")}) 
); 
1

he encontrado la solución, lo que tiene que hacer:

$mongo->my_db->my_collection(find({ _id => $mongo->oid("4d2a0fae9e0a3b4b32f70000")})); 
-2

Al leer la MongoDB :: Tutorial

uso MongoDB cargas mayoría de los paquetes que necesita para interactuar con MongoDB MongoDB ::: Conexión, MongoDB :: Base de datos, MongoDB :: Colección y MongoDB :: Cursor. Para utilizar tipos de datos especiales de Mongo (consulte MongoDB :: DataTypes), debe incluirlos por separado. Así que, por lo general, a utilizar Mongo, comenzará con al menos:

use MongoDB; 
use MongoDB::OID; 

a continuación, puedes hacer esto en su código:

$db->$collection->find_one({ _id => $id }) 
Cuestiones relacionadas