MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

$in mongoDB-Operator mit _id in Perl

Stellen Sie zunächst sicher, dass Sie die richtige Syntax verwenden. Ihr erstes Beispiel ist kein gültiger Perl-Code, da Sie einen Teil von JSON als Abfrageparameter einschließen.

Zweitens, vorausgesetzt, diese ID-Werte sind MongoDB-Objekt-IDs, müssen Sie OID-Objekte erstellen, um sie von gewöhnlichen Zeichenfolgen zu unterscheiden. Achten Sie darauf, einfache Anführungszeichen zu verwenden ('' ) um $in , andernfalls versucht Perl, $in zu interpolieren als Variable (die vermutlich nichts enthält).

Ich nehme also an, Sie möchten so etwas tun:

$db->$collection->find( {
    "_id" => { 
        '$in' => [ MongoDB::OID->new( value => "4f520122ecf6171327000137" ), 
                   MongoDB::OID->new( value => "4f4f49c09d1bd90728000034" )
                 ]
             } 
} );

Bearbeiten:Darüber hinaus ist die Verwendung von automatisch geladenen Methodennamen zum Abrufen von Sammlungen für eine Weile veraltet. Verwenden Sie am besten $db->get_collection( "collection name" )->find( ... )