我的數據庫記錄的財產以後這樣的...如何使用php取消設置mongodb中的所有記錄字符串?
{
"_id": ObjectId("50118b145e69ef2c0e007a2"),
"class": "customer",
"dbid": "1829",
"value": "[email protected]"
}
{
"_id": ObjectId("50118b145e69ef2c0e007a1"),
"class": "customer",
"dbid": "1828",
"value": "[email protected]"
}
我的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;
我嘗試使用下面的代碼使用來自如刪除字段中的所有記錄$未設置「DBID」,但它不起作用。
PS:我嘗試在stackoverflow中搜索,但總是在命令行中顯示教程,但我需要它在PHP腳本中起作用。
$COLLECTION->update(array('$unset' => array('dbid' => true)));
我試一下這段代碼也沒用。 :(
$COLLECTION->update(array('$unset' => array('dbid' => true)), array('multiple'=>true));
如果你們有什麼想法,請分享..
太謝謝你了。:)
---------更新--- -------
嗨,大家好,謝謝你的回答。
我已經找到了問題。
@Marc 你說得對!我忘了標準 ,我發現我的代碼也是錯誤的。
問題是mongodb擴展與定義值混淆。 (它認爲DB_DBNAME是一個數據庫名稱),所以,我添加+改變了一些代碼看起來像這樣。
$mongodb_name = DB_DBNAME;
$MONGODB = $DB->$mongodb_name;
$COLLECTION = $MONGODB->my_customer;
現在,我嘗試@Marc示例代碼
從所有記錄中刪除($未設置)字符串......(工程!)
$COLLECTION->update(array('dbid' => array('$exists' => true)), array('$unset' => array('dbid' => true)), array('multiple' => true));
插入串入的所有記錄。 ..我使用這個代碼。 (Works!)
$COLLECTION->update(array('dbid' => array('$exists' => false)), array('$set' => array('dbid' => 'new_value')), array('multiple' => true));
謝謝你的一切幫助。 :)