PHP MongoDb обновление $ в массиве - PullRequest
1 голос
/ 26 января 2012

Из командной строки MongoDB я могу сделать

db.user.update({userid: {$in: [435707147,88513850,466518582]}},{$unset: {f1 : 1}})

, который удалит переменную f1 из всех пользовательских объектов в БД. Как бы вы перевели это в синтаксис PHP?

I следующее выполняется без ошибок, но в БД не вносятся изменения.

$db->user->update(array("userid"=>array('$in'=>$ids)), 
    array('$unset'=> array("f1"=>1)));

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Вы устанавливаете $ids = array(435707147, 88513850, 466518582);?

Возможно, вам также нужно будет сказать это с помощью 'multiple'=>true, чтобы обновить все сразу:

$db->user->update(array("userid"=>array('$in'=>$ids)), 
   array('$unset'=> array("f1"=>true)), 
   array('multiple'=>true));
0 голосов
/ 26 января 2012

Wes правильно, вы, вероятно, захотите использовать 'multiple'=>true. Если только запрос $ in по-прежнему не возвращает никаких результатов, убедитесь, что элементы в $ids являются целыми числами, а не строками (попробуйте вызвать gettype() для каждого элемента).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...