まず、正しい構文を使用していることを確認してください。最初の例は、クエリパラメータとしてJSONのチャンクを含めているため、有効なPerlコードではありません。
次に、これらの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( ... )
を使用することをお勧めします