Pertama, pastikan Anda menggunakan sintaks yang benar. Contoh pertama Anda bukan kode Perl yang valid, karena Anda menyertakan sepotong JSON sebagai parameter kueri.
Kedua, dengan asumsi nilai ID ini adalah milik MongoDB ObjectID, Anda harus membuat objek OID untuk membedakannya dari string biasa. Dan pastikan untuk menggunakan tanda kutip tunggal (''
) sekitar $in
, jika tidak, Perl akan mencoba menginterpolasi $in
sebagai variabel (yang mungkin tidak memiliki apa-apa di dalamnya).
Jadi saya berasumsi Anda ingin melakukan sesuatu seperti ini:
$db->$collection->find( {
"_id" => {
'$in' => [ MongoDB::OID->new( value => "4f520122ecf6171327000137" ),
MongoDB::OID->new( value => "4f4f49c09d1bd90728000034" )
]
}
} );
Sunting:Selain itu, menggunakan nama metode yang dimuat secara otomatis untuk mengambil koleksi telah ditinggalkan untuk sementara waktu. Anda lebih baik menggunakan $db->get_collection( "collection name" )->find( ... )