我的数据库记录了这样的事情......
{
"_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 扩展与定义值混淆。(它认为 DB_DBNAME 是数据库名称)所以,我添加+更改了一些代码,如下所示。
$mongodb_name = DB_DBNAME;
$MONGODB = $DB->$mongodb_name;
$COLLECTION = $MONGODB->my_customer;
现在,我尝试@Marc 示例代码
从所有记录中删除 ($unset) 字符串...(有效!)
$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));