2012-06-24 3 views
0

Я хочу обновить все записи в моей базе данных (mongodb), я попытался использовать команду ниже, чтобы сделать это , но я не смог найти решение.Perl MongoDb множественное обновление

use MongoDB; 
my $dbhost = MongoDB::Connection->new(host => '127.0.0.1', port => 27017); 
    my $database = $dbhost->test; 
my $res = $database->questions; 
$res->update({'person'=>'omer'},{'$set' => { 'canbeseen' =>"oha"}},{"multi" => "true"}); 

Я хочу обновить все «помеченные» omer. но он не работает, так как я могу это сделать? Я жду ваших ответов. Спасибо.

+0

Просьба указать код, который вы пробовали. Что такое '$ res' и какой модуль вы используете? – Tim

+0

Я редактировал, теперь все здесь. –

+0

Что не работает? Почему вы не используете предупреждения? Что содержит '$ database-> last_error()' после обновления? – Tim

ответ

1

Модуль MongoDB, кажется, использует multiple ключевое слово вместо multi:

$res->update(
    {'person' => 'omer' }, 
    {'$set'  => { 'canbeseen' => "oha" } }, 
    {'multiple' => "true" } 
); 

Из documentation:

multiple Все документы, которые соответствуют $ критерии будут обновляться, а не только найден первый документ. (Доступно только с версией базы данных 1.1.3 и новее.)

+0

спасибо! он отлично работает! –

Смежные вопросы