Primeiro, verifique se você está usando a sintaxe correta. Seu primeiro exemplo não é um código Perl válido, pois você está incluindo um pedaço de JSON como o parâmetro de consulta.
Segundo, supondo que esses valores de ID sejam os ObjectIDs do MongoDB, você precisará criar objetos OID para diferenciá-los das strings comuns. E certifique-se de usar aspas simples (
''
) em torno de $in
, caso contrário, o Perl tentará interpolar $in
como uma variável (que presumivelmente não tem nada nela). Então, suponho que você queira fazer algo assim:
$db->$collection->find( {
"_id" => {
'$in' => [ MongoDB::OID->new( value => "4f520122ecf6171327000137" ),
MongoDB::OID->new( value => "4f4f49c09d1bd90728000034" )
]
}
} );
Editar:Além disso, o uso de nomes de métodos carregados automaticamente para recuperar coleções foi preterido por um tempo. É melhor usar
$db->get_collection( "collection name" )->find( ... )