sql >> Base de Datos >  >> NoSQL >> MongoDB

Operador $in mongoDB con _id en perl

Primero, asegúrese de estar usando la sintaxis correcta. Su primer ejemplo no es un código Perl válido, ya que está incluyendo una parte de JSON como parámetro de consulta.

En segundo lugar, suponiendo que estos valores de ID sean MongoDB ObjectID, deberá crear objetos OID para diferenciarlos de las cadenas ordinarias. Y asegúrese de usar comillas simples ('' ) alrededor de $in , de lo contrario, Perl intentará interpolar $in como una variable (que presumiblemente no contiene nada).

Así que asumo que quieres hacer algo como esto:

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

Editar:además, el uso de nombres de métodos cargados automáticamente para recuperar colecciones ha quedado obsoleto por un tiempo. Es mejor usar $db->get_collection( "collection name" )->find( ... )