Najpierw upewnij się, że używasz poprawnej składni. Twój pierwszy przykład nie jest prawidłowym kodem Perla, ponieważ dołączasz fragment JSON jako parametr zapytania.
Po drugie, zakładając, że te wartości ID to MongoDB ObjectID, będziesz musiał utworzyć obiekty OID, aby odróżnić je od zwykłych ciągów. I upewnij się, że używasz pojedynczych cudzysłowów (''
) wokół $in
, w przeciwnym razie Perl spróbuje interpolować $in
jako zmienną (która prawdopodobnie nie ma w sobie nic).
Zakładam więc, że chcesz zrobić coś takiego:
$db->$collection->find( {
"_id" => {
'$in' => [ MongoDB::OID->new( value => "4f520122ecf6171327000137" ),
MongoDB::OID->new( value => "4f4f49c09d1bd90728000034" )
]
}
} );
Edycja:dodatkowo używanie automatycznie ładowanych nazw metod do pobierania kolekcji zostało od jakiegoś czasu przestarzałe. Lepiej jest użyć $db->get_collection( "collection name" )->find( ... )