Как отключить всю строку записей в mongodb, используя php?

Моя БД записывает что-то вроде этого …

{ "_id": ObjectId("50118b145e69ef2c0e007a2"), "class": "customer", "dbid": "1829", "value": "aaa@hotmail.com" } { "_id": ObjectId("50118b145e69ef2c0e007a1"), "class": "customer", "dbid": "1828", "value": "bbb@hotmail.com" } 

Мой PHP-код

 define('DB_HOST', 'localhost'); define('DB_DBNAME', 'mydb'); define('DB_USERNAME', 'mongouser'); define('DB_PASSWORD', 'mongopasswd'); define('DB_DSN', "mongodb://". DB_USERNAME .":". DB_PASSWORD ."@". DB_HOST ."/". DB_DBNAME); $DB = new Mongo(DB_DSN); if (!$DB) { die('DB Connection failed!'); } $MONGODB = $DB->DB_DBNAME; $COLLECTION = $MONGODB->my_customer; 

Я пытаюсь использовать $ unset «dbid» из всех записей, таких как удаление поля, используя приведенный ниже код, но он не работает.

PS: Я пытаюсь выполнить поиск в stackoverflow, но всегда показываю учебник в командной строке, но мне нужно, чтобы он работал в PHP-скрипте.

 $COLLECTION->update(array('$unset' => array('dbid' => true))); 

Я пробую этот код тоже не работает. 🙁

 $COLLECTION->update(array('$unset' => array('dbid' => true)), array('multiple'=>true)); 

Если у вас есть идеи, пожалуйста, поделитесь.

Огромное спасибо. 🙂


——— Обновлено ———-

Привет, ребята и спасибо за ваши ответы.

Я уже нашел проблемы.

@Marc Вы правы! Я забыл критерии, и я обнаружил, что мой код тоже неправильный.

Проблема заключается в том, что расширение mongodb путается с значением define. (Он думает, что DB_DBNAME – это имя базы данных), поэтому я добавил + изменил код, похожий на этот.

 $mongodb_name = DB_DBNAME; $MONGODB = $DB->$mongodb_name; $COLLECTION = $MONGODB->my_customer; 

Теперь, я попробую код примера @Marc

Чтобы удалить ($ unset) строку из всех записей … (Works!)

 $COLLECTION->update(array('dbid' => array('$exists' => true)), array('$unset' => array('dbid' => true)), array('multiple' => true)); 

Чтобы вставить строку во все записи … Я использую этот код. (Работает!)

 $COLLECTION->update(array('dbid' => array('$exists' => false)), array('$set' => array('dbid' => 'new_value')), array('multiple' => true)); 

Спасибо вам за все ваши советы. 🙂

Вы забыли критику, поэтому решение было бы:

 $COLLECTION->update( array('dbid' => array('$exists' => true)), array('$unset' => array('dbid' => true)), array('multiple' => true) ) 

Я думаю, что что-то вроде этого будет работать

  $collection->update( array( '$unset' => array('dbid' => true) ); array("upsert" => true, "multiple" => true) );