sql >> Database teknologi >  >> NoSQL >> MongoDB

$in mongoDB operator med _id i perl

Først skal du sikre dig, at du bruger den korrekte syntaks. Dit første eksempel er ikke gyldig Perl-kode, da du inkluderer en del af JSON som forespørgselsparameter.

For det andet, forudsat at disse ID-værdier er MongoDB ObjectID'er, bliver du nødt til at lave OID-objekter for at differentiere dem fra almindelige strenge. Og sørg for at bruge enkelte anførselstegn ('' ) omkring $in , ellers vil Perl forsøge at interpolere $in som en variabel (som formodentlig ikke har noget i sig).

Så jeg går ud fra, at du vil gøre sådan noget:

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

Rediger:Derudover er brugen af ​​automatisk indlæste metodenavne til at hente samlinger blevet forældet i et stykke tid. Du er bedre stillet ved at bruge $db->get_collection( "collection name" )->find( ... )




  1. Indsæt Array i et objekt i MongoDB

  2. MongoDB unikke indekser tillader ikke overskrivning

  3. Upsert Array Elements matchende kriterier i et MongoDB-dokument?

  4. MongoDB - DBRef