MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Opérateur $in mongoDB avec _id en perl

Tout d'abord, assurez-vous que vous utilisez la syntaxe correcte. Votre premier exemple n'est pas un code Perl valide, car vous incluez un morceau de JSON comme paramètre de requête.

Deuxièmement, en supposant que ces valeurs d'ID sont des ObjectID de MongoDB, vous devrez créer des objets OID afin de les différencier des chaînes ordinaires. Et assurez-vous d'utiliser des guillemets simples ('' ) autour de $in , sinon Perl essaiera d'interpoler $in en tant que variable (qui n'a probablement rien dedans).

Je suppose donc que vous voulez faire quelque chose comme ceci :

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

Modifier :De plus, l'utilisation de noms de méthodes chargés automatiquement pour récupérer des collections est obsolète depuis un certain temps. Vous feriez mieux d'utiliser $db->get_collection( "collection name" )->find( ... )