sql >> Databasteknik >  >> NoSQL >> MongoDB

$in mongoDB operator med _id i perl

Se först till att du använder rätt syntax. Ditt första exempel är inte giltig Perl-kod, eftersom du inkluderar en del av JSON som frågeparameter.

För det andra, förutsatt att dessa ID-värden är MongoDB ObjectID:s, måste du göra OID-objekt för att skilja dem från vanliga strängar. Och se till att använda enstaka citattecken ('' ) runt $in , annars kommer Perl att försöka interpolera $in som en variabel (som förmodligen inte har något i sig).

Så jag antar att du vill göra något sånt här:

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

Redigera:Dessutom har användningen av autoladdade metodnamn för att hämta samlingar föråldrats ett tag. Det är bättre att använda $db->get_collection( "collection name" )->find( ... )




  1. Hur man lagrar listelement i Redis cache

  2. Heroku Custom Domain fungerar inte

  3. flera dokumenttransaktioner fungerar inte i c# med mongodb 4.08 community-server

  4. har många relationsproblem i Laravel 5.3 + MongoDB-biblioteket 'jenssegers/laravel-mongodb'