问题标签 [php-mongodb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
180 浏览

mongodb - 在 mongo db php 中更新特定的子文档

我在 mongo db 中有一个名为 EmployeeTbl 的集合,其文档如下

}

我正在尝试更新 ContactDetails 中的子文档,并且我已经编写了以下代码。它不会更新现有的。它没有更新,而是添加了新的子文档。请帮我 !!!

0 投票
1 回答
40 浏览

mongodb - 从集合中的文档中删除子文档

我正在尝试从集合中删除子文档。我试过下面的代码行

它抛出错误消息“未捕获的异常 'MongoDB\Driver\Exception\BulkWriteException' 和消息'不能使用 (ContactDetails.ContactTypeId) 的部分 (ContactTypeId) 来遍历元素”

集合中的文档就像

0 投票
1 回答
3520 浏览

php - 在 OSX 上使用 Homebrew 的 PHP72 MongoDB 驱动程序

我有一个问题可能表明我对 Homebrew 对 MongoDB 的误解:

我在 Mac OSX 10.12.6 (Sierra) 上使用 PHP 7.2.1(我想使用)运行 XAMPP(版本)。我安装了 MongoDB 并创建了配置和数据存储文件夹。它在命令行上运行良好(通过终端使用 mongod 和 mongodb 时)。

现在,我想为 PHP 7.2.1 安装 PHP 驱动程序。我按照http://php.net/manual/en/mongodb.installation.homebrew.php上的说明 将它们调整为 7.2 版,因此:

这会在 /usr/local/Cellar 中创建一个 php72 和一个 php72-mongodb 文件夹。但是,我原来的(基于 XAMPP 的)PHP 位于 /Applications/XAMPP/ 中,而 php 位于 /Applications/XAMPP/etc/php.ini 中。

并简单地添加:

不会成功的。添加此扩展后,Apache 将不再启动。/Applications/XAMPP/logs/php_error.log 显示以下错误:

将我刚刚安装的驱动程序包含/连接到现有 XAMPP 安装的正确方法是什么?我是否需要以某种方式告诉 Homebrew 我的 XAMPP 安装在哪里?

鉴于我的 Homebrew(和我的 /usr/local/opt 文件夹)中还有一个 php 文件夹,这表明我现在有第二个 PHP 安装。这是应该的方式吗?

0 投票
1 回答
1323 浏览

mongodb - 如何在 mongo db 中进行条件更新?

我正在尝试更新文档的子文档,如下面的代码行

我有像这样的文件

如果 $this->EmployeeStatus 包含“Joined”并且 $this->EmployeeStatusDate 包含一些不同的值,例如上面的文档它包含“2019-05-28T23:00:00.0Z”(除了以前的值),那么它应该被更新。

上面的代码插入另一个子文档,其值如下

我希望在 Joined 的情况下应该更新现有的子文档。

请帮忙!!!

0 投票
0 回答
44 浏览

php - Zesle 上的 MongoDB PHP 驱动程序

我找不到安装“MongoDB PHP”驱动程序的方法,因为我将“ZesleCP”用于我的网络托管作为控制面板。

Ubuntu 16.04.4 x64

0 投票
0 回答
544 浏览

php - php mongodb 扩展在 Windows 10 中不起作用

这些是我下载的文件。

apache==>>httpd-2.4.32-Win64-VC15 (x64 VC15)

PHP==>>php-7.2.3-Win32-VC15-x64 (x64 VC15线程安全)

php_mongodb.dll==>>php_mongodb-1.4.2-7.2-ts-vc15-x64 (x64 VC15线程安全)

我做的步骤

1.将apache解压到“C:\Apache24”

2.添加到Windows环境变量路径“C:\Apache24\bin”并作为服务安装 httpd -k install

3.解压php到“C:php”

4.将php.ini-development重命名为php.ini

5.新增线路

LoadModule php7_module "c:/php/php7apache2_4.dll"

SetHandler 应用程序/x-httpd-php

PHPIniDir "c:/php"

6.将php_mongodb.dll解压到“c:/php/ext/”

7.在 ";extension=xsl" 后面的 "c:/php/php.ini" 中添加行 "extension=php_mongodb.dll" 没有 ";"

8.将“C:\php”添加到 PATH

MongoDB shell 版本 v3.6.3

mongodb 模块未显示在 phpinfo() 中,但显示在 cli "php -m" 中

在此处输入图像描述

在此处输入图像描述

尝试了一个在我的 ubuntu 系统中完美运行的示例脚本以及使用 composer 下载的 mongo 库

我得到了一个如预期的致命错误(因为 php_mongodb 不工作)

致命错误:未捕获错误:在 C:\Apache24\htdocs\SIMS_SSS\vendor\mongodb\mongodb\src\Client.php:61 中找不到类 'MongoDB\Driver\Manager' 堆栈跟踪:#0 C:\Apache24\htdocs \SIMS_SSS\authenticate.php(4): MongoDB\Client->__construct('mongodb://local...') #1 {main} 在 C:\Apache24\htdocs\SIMS_SSS\vendor\mongodb\mongodb\第 61 行的 src\Client.php

0 投票
1 回答
32 浏览

mongodb - 搜索在 mongo db php 中不起作用

我在 mongo db 中有一个集合,例如

我正在尝试使用以下代码行搜索一个参数

它返回空数组,如“array(0) { }”。我在早期版本的 mongo db 中尝试过类似的方法,上面的查询工作正常。现在我是 mongo db 3.6,它在这个版本中不起作用。如果我在参数 searchCriteria 中给出“aa”,它就不起作用。

请帮忙!!!

0 投票
0 回答
168 浏览

php - 无法访问记录的 mongo id

我正在尝试使用以下代码行获取记录的 mongo id

游标中的结果就像

它抛出错误消息“未定义索引:_id in”

0 投票
1 回答
54 浏览

php - 在(聚合)Mongo中进行多个分组

我试图按聚合中的两个不同字段进行分组,以避免重复。我有以下情况:

在上面的示例中,我按 $field1 对它们进行分组。是否可以在同一个聚合中按 $field 2 对相同的数据进行分组?

0 投票
1 回答
654 浏览

php - 如何在MongoDB中使用聚合函数?

我已将 php5 升级到 php7。如果我使用 mongoClient 进行 mongodb 连接,则会显示错误。所以我使用了以下命令。

$manager = new MongoDB\Driver\Manager("mongodb://".MONGOHOST.":27017");

通过使用上面的命令,我可以连接数据库。现在问题是在 php5 中,我使用了聚合函数。它在 php7 中不支持。下面提到的php5中使用的代码..

用于数据库连接

$m = new MongoClient('mongodb://'.MONGOHOST.'', array('username' => MONGOUSER, 'password' => MONGOPASS, 'db'=> MONGODB )); $db = $m->selectDB(MONGODB);

从数据库中检索值:

$reqbids = $db->requestbids->aggregate($ops);

如何做到这一点是使用 mongo 驱动程序..我搜索了 2 天,但没有找到解决方案。