MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

$in mongoDB оператор с _id в perl

Първо се уверете, че използвате правилния синтаксис. Вашият първи пример не е валиден Perl код, тъй като включвате част от JSON като параметър на заявката.

Второ, ако приемем, че тези ID стойности са MongoDB ObjectID, ще трябва да направите OID обекти, за да ги разграничите от обикновените низове. И не забравяйте да използвате единични кавички ('' ) около $in , в противен случай Perl ще се опита да интерполира $in като променлива (която вероятно няма нищо в себе си).

Предполагам, че искате да направите нещо подобно:

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

Редактиране:Освен това използването на автоматично заредени имена на методи за извличане на колекции е отхвърлено за известно време. По-добре е да използвате $db->get_collection( "collection name" )->find( ... )




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка с дублиран ключ на Mongoose с upsert

  2. Актуализиране на много вложен масив в Mongodb

  3. MongoDB - Защо индексът _id не извежда грешка при дублиращи се записи?

  4. Как да върна само първото появяване на ID с Mongoose?

  5. Разбиране на опциите за изчакване на клиента на MongoDB