php - 如何使用 php 取消设置 mongodb 中的所有记录字符串?

标签 php mongodb

我的数据库记录了这样的事情......

{
   "_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));

如果你们有任何想法,请分享..

非常感谢。 :)


------------ 更新------------

我已经找到了问题的解决方案。

@马克 你是对的!我忘记了条件 而且我发现我的代码也是错误的。

问题是 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));

最佳答案

你忘记了条件,所以解决方案是:

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

关于php - 如何使用 php 取消设置 mongodb 中的所有记录字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757959/

相关文章:

php - 引用 - 这个错误在 PHP 中意味着什么?

php - 什么被认为是 "best practice"用于设计一组服务 AJAX 请求的 PHP 脚本?

javascript - 执行二进制代码

mongodb - mongodb中按大小写排序

java - 如何在Java中正确使用MongoDB多线程?

php - 如果列为空,MySQL 选择行并忽略行

php - 通过 Zend Framework Update Query 传递 Mysql 函数

javascript - 如何在mongodb中为用户和管理员赋予不同的权限

javascript - MongoDB : Read a file stored using GridFS from MongoDB in Javascript(using Node.JS)

java - V2 和 WSI Magento SOAP 接口(interface)有什么作用?