sql >> Database >  >> NoSQL >> MongoDB

$in mongoDB-operator met _id in perl

Zorg er eerst voor dat u de juiste syntaxis gebruikt. Uw eerste voorbeeld is geen geldige Perl-code, omdat u een stuk JSON als queryparameter opneemt.

Ten tweede, ervan uitgaande dat deze ID-waarden MongoDB ObjectID's zijn, moet u OID-objecten maken om ze te onderscheiden van gewone tekenreeksen. En zorg ervoor dat u enkele aanhalingstekens gebruikt ('' ) rond $in , anders zal Perl proberen $in te interpoleren als een variabele (die vermoedelijk niets bevat).

Dus ik neem aan dat je zoiets als dit wilt doen:

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

Bewerken:Bovendien is het gebruik van automatisch geladen methodenamen om collecties op te halen al een tijdje niet meer beschikbaar. U kunt beter $db->get_collection( "collection name" )->find( ... ) gebruiken




  1. Is dit een goede use-case voor Redis op een ServiceStack REST API?

  2. Mongoose:moet een aangepaste _id worden gedeclareerd als een index en uniek zijn?

  3. Vind MongoDB-records waar het matrixveld niet leeg is

  4. Kan mongo-php-driver niet installeren op OS X 10.11