Innanzitutto, assicurati di utilizzare la sintassi corretta. Il tuo primo esempio non è un codice Perl valido, poiché stai includendo un blocco di JSON come parametro della query.
In secondo luogo, supponendo che questi valori ID siano MongoDB ObjectID, dovrai creare oggetti OID per differenziarli dalle stringhe ordinarie. E assicurati di utilizzare virgolette singole (''
) intorno a $in
, altrimenti Perl proverà a interpolare $in
come variabile (che presumibilmente non contiene nulla).
Quindi presumo che tu voglia fare qualcosa del genere:
$db->$collection->find( {
"_id" => {
'$in' => [ MongoDB::OID->new( value => "4f520122ecf6171327000137" ),
MongoDB::OID->new( value => "4f4f49c09d1bd90728000034" )
]
}
} );
Modifica:inoltre, l'utilizzo dei nomi dei metodi caricati automaticamente per recuperare le raccolte è stato deprecato per un po'. È meglio usare $db->get_collection( "collection name" )->find( ... )