sql >> データベース >  >> NoSQL >> MongoDB

$inmongoDB演算子とperlの_id

    まず、正しい構文を使用していることを確認してください。最初の例は、クエリパラメータとして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( ... )を使用することをお勧めします




    1. Mongodbは複数のサブ配列の結果を返し、他の返された結果を除外します

    2. 反応でbase64画像を表示するにはどうすればよいですか?

    3. Meteor-collection.find()は常にすべてのフィールドを返します

    4. MongoとMeteorのネストされたカテゴリのベストプラクティス