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

2024-04-27

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

{
   "_id": ObjectId("50118b145e69ef2c0e007a2"),
   "class": "customer",
   "dbid": "1829",
   "value": "[email protected] /cdn-cgi/l/email-protection" 
}

{
   "_id": ObjectId("50118b145e69ef2c0e007a1"),
   "class": "customer",
   "dbid": "1828",
   "value": "[email protected] /cdn-cgi/l/email-protection" 
}

我的 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:我尝试在堆栈溢出中搜索,但总是在命令行中显示教程,但我需要它在 PHP 脚本中工作。

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

我尝试这段代码也不起作用。 :(

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

如果大家有什么想法请分享..

太感谢了。 :)


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

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

@马克 你说得对!我忘记了criteria我发现我的代码也是错误的。

问题是 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)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 如何在 Spring MVC 中使用延迟加载

    Spring MVC中如何使用延迟加载 我现在正在使用 eager 但这会使我的应用程序运行速度变慢 这是我的域的一部分 ManyToMany fetch FetchType EAGER JoinTable name NEWS TAG jo
  • 直接屏幕像素/帧缓冲区访问[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想尝试创建一个玩游戏的程序 IE 机器人 我希望能够直接访问屏幕上的像素 IE 让我的程序 看到 一场比赛 然后 采取行动 或者至少
  • Windows批处理文件-显示所有子文件夹

    我在使用 Windows 批处理文件返回 JUST 文件夹 忽略文件 时遇到困难 这就是我现在所拥有的 目前它正在返回文件和子子文件夹 for r g in xx do echo g 另外 假设我只想返回以几个不同前缀开头的文件夹 例如 我
  • 如何向 gitlab-ci.yml 添加多行 bash EOD 命令?

    这个问题已被问过多次 但大多数问题都很容易解决 尽管使用工具expect它没有像我预期的那样工作 usr bin expect lt
  • 在openxml中向Excel添加样式

    我想在打开的 Excel 文档中设置文本的前景色以写入文本 为此我尝试过 var stylesheet1 spreadSheet WorkbookPart WorkbookStylesPart Stylesheet Fills fills1
  • FF Addon SDK 有打开设置页面的 API 吗?

    I use 简单首选项 https developer mozilla org en US Add ons SDK High Level APIs simple prefs模块来配置插件设置 我怎么能够以编程方式打开插件的设置页面 我们这样
  • 无法使用激活器(Play Framework)加载本机库

    我正在尝试在 Play 2 4 x 应用程序中加载本机库 我编写了一个简单的测试 该测试在 IDE IntelliJ 和 SBT 中都运行良好 在这两种情况下我都设置java library path让测试运行 我在IDE中设置 Djava
  • 为什么我的 BST 根指针由于某种未知原因而发生变化?

    我正在尝试用 C 语言实现二叉搜索树数据结构 但遇到了一个错误 我的指针值由于我不明白的原因而发生变化 请参阅帖子底部的奇怪输出 删除函数和主要函数澄清输出来自何处 我的测试功能如下 int main void Bst bst Bst ca
  • 如何在 Dart 和 Flutter 中将时间四舍五入到最接近的一刻钟?

    我有一个DateTime并愿意四舍五入至 15 秒 或其他间隔 例如 2020 03 16 12 23 53 756 到 2020 03 16 12 23 45 000 和 2020 03 16 12 24 01 1234 到 2020 0
  • 如何缩进现有 OCaml 代码

    我有大约 30 000 行缩进严重的 OCaml 代码 包括 mly 和 mll 文件 并且想要缩进它们 我尝试在谷歌上搜索 ocaml indent 的变体 我能得到的最接近的结果是使用 Omlet vim 并一次缩进一行代码 在插入模式
  • 我的 React 项目中 Firestore 数据库的读取次数非常多

    我正在使用 React 和 firebase firestore 制作一个简单的 CRUD 应用程序 我目前有一组 产品 有四条记录 主页循环显示产品 import React useEffect useState from react i
  • 如何从模板类中的方法返回 NULL

    我有一个如下所示的方法 template
  • 从恶意 PDF 中提取 JavaScript

    我有一个 PDF 文件 据我所知 它包含一个 JavaScript 脚本文件 该文件会执行恶意操作 但目前还不确定具体是什么 我已经成功解压缩了 PDF 文件并获得了纯文本 JavaScript 源代码 但它的代码本身隐藏在我以前从未见过的
  • 为什么 OpenSSL 给我一个“调用了不应调用的函数”错误?

    我正在努力向我的服务器程序添加 OpenSSL 支持 通常它运行得很好 但我遇到了一个问题 首先 一些背景知识 服务器是单线程的 使用非阻塞 I O 和 select 循环来同时处理多个客户端 服务器链接到 libssl 0 9 8 dyl
  • 如何在 OSX .pkg 中设置背景图像?

    我正在为我的 OSX 应用程序创建一个 pkg 安装程序 但我无法弄清楚如何设置背景图像 我在构建脚本中创建安装程序 如下所示 pkgbuild root APP FOLDER identifier com company product
  • 如何关闭 iOS 键盘?

    我有一个 UITextfield 我想关闭键盘 无论我使用什么代码 我似乎都无法让键盘消失 如果您有多个文本字段并且不知道哪个是第一响应者 或者您根本无法从编写此代码的任何位置访问文本字段 您可以调用endEditing 在包含文本字段的父
  • App Engine 日志中的 /_ah/queue/__deferred__

    我有一个使用 Google Cloud SQL 的 App Engine 应用程序 并且从我的应用程序的页面中我正在执行一些数据库操作 每当访问此页面时 它都无法执行所有数据库操作 当我进入控制台时 我看到的只是 ah queue defe
  • Selenium find_elements_by_css_selector 返回一个空列表

    我正在尝试选择包含以下内容的所有 idcoupon link关键字与以下脚本 from selenium import webdriver from selenium webdriver common keys import Keys dr
  • 如何在 Xamarin.Android 的 AXML 上启用智能感知?

    由于这个很棒的工具对所有人免费 我尝试了它 并且我喜欢它 尤其是 Visual Studio Android 模拟器 但是 我遇到了一个问题 因为 Visual Studio 智能感知根本不适用于 axml 文件 我尝试了这篇文章 http
  • 如何使用php取消设置mongodb中的所有记录字符串?

    我的数据库记录了这样的事情 id ObjectId 50118b145e69ef2c0e007a2 class customer dbid 1829 value email protected cdn cgi l email protect