Първо се уверете, че използвате правилния синтаксис. Вашият първи пример не е валиден Perl код, тъй като включвате част от JSON като параметър на заявката.
Второ, ако приемем, че тези ID стойности са MongoDB ObjectID, ще трябва да направите OID обекти, за да ги разграничите от обикновените низове. И не забравяйте да използвате единични кавички (''
) около $in
, в противен случай Perl ще се опита да интерполира $in
като променлива (която вероятно няма нищо в себе си).
Предполагам, че искате да направите нещо подобно:
$db->$collection->find( {
"_id" => {
'$in' => [ MongoDB::OID->new( value => "4f520122ecf6171327000137" ),
MongoDB::OID->new( value => "4f4f49c09d1bd90728000034" )
]
}
} );
Редактиране:Освен това използването на автоматично заредени имена на методи за извличане на колекции е отхвърлено за известно време. По-добре е да използвате $db->get_collection( "collection name" )->find( ... )