问题标签 [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 回答
146 浏览

php - PHPMongo - 在 MongoDB 中仅查找并返回匹配的嵌入文档

我无法使用sokil PHPMongo ODM 库返回匹配的嵌入式文档。我是 ODM 概念的新手,以下是我收集项目的文档结构:

因此,在我的查询中,第一个条件是获取具有匹配 ID 的项目,第二个条件是仅从classes具有特定 id 的嵌入式文档数组中检索类。这就是我构建查询的方式:

我期望它只返回OLA来自usecase-updated文档的嵌入文档,如下所示:

但是PHPMongo库正在返回带有所有类的整个项目文档(显示在问题的开头)。有人建议研究聚合框架。PHPMongo但问题是关于使用数组聚合函数(如$filter)的文档不够好

我通过使用本机实例进行了尝试,MongoCollection并且我可以使用该findOne方法以这种方式投影我的最终结果:

如果我想使用sokil PHPMongogetDocument的方法实现类似的投影,有没有可能?

更新: 我尝试使用聚合框架来实现,以下是查询:

但我得到了这个例外:

0 投票
1 回答
1401 浏览

ubuntu - 将 mongodb 扩展添加到 PHP-7.1.9 XAMPP Ubuntu

我已经在我的 ubuntu 电脑上安装了 lampp(XAMPP) 服务器,现在我想将 mongodb 扩展添加到它的 PHP 中。所以我尝试sudo /opt/lampp/bin/pecl install mongodb并成功安装了它。但在那之后,当我尝试启动lampp服务器时,它只是弹出:

XAMPP 目前仅作为 32 位应用程序提供。请为您的系统使用 32 位兼容性库

所以是我为此创建的 Github 问题。

我还尝试为 64 位和 32 位手动构建此扩展并安装它(参考),在 32 位情况下它显示另一个错误(有关更多详细信息,您可以参考)但在 64 位它显示相同按摩如上。

注意:这是输出/opt/lampp/bin/php -v

/opt/lampp/bin/php:重定位错误:/opt/lampp/lib/php/extensions/no-debug-non-zts-20160303/mongodb.so:符号 SSL_library_init,版本 OPENSSL_1.0.0 未在文件 libssl 中定义。 so.1.0.0 与链接时间参考

谁能告诉我如何解决这个问题??

0 投票
1 回答
80 浏览

php - Json 数组到数组

我有一个来自 laravel 的 JSON 数组,如下所示:

我怎样才能只把UnitPriceUnitsInStock作为一个数组?有没有不使用循环的方法?

我想像这样使用它:

0 投票
1 回答
33 浏览

mongodb - 如何检查表中是否已经存在时间限制?

mongodb在表AcademicyearTbl中的数据库中有很多记录,例如

我正在尝试调整以下代码

代码:

我很新mongodb,我能够获得任何灵感来比较输入的新开始日期和结束日期是否不应该落在数据库中已经存在的时间段内。

例如,如果用户将输入新数据,例如

然后它不应该被允许插入,因为表中已经有数据,如第一个所述。

请帮忙 !!!

0 投票
1 回答
27 浏览

php - 访问以“@”开头的 JSON 字段 - PHP MongoDB 库

我有一个 MongoDB 数据库,其中包含由遵循此模式的人员组成的集合

和另一个由这样的项目组成的集合

我正在使用 MongoDB 库处理 PHP 5.6。

目标

我想查询具有特定创建者(显然是一个)的项目。 通过查询(有效)

涉及正则表达式$pregex,我检索了该人的投影(包含@id名称字段),然后我尝试编写以下查询以获取项目的字段创建者和人员@id字段之间的匹配

但它不起作用,因为 PHP 不接受以@开头的字段(IDE 说“预期的字段名称”)。
我也试过

但它没有用。
那么,有什么方法可以访问 PHP 中以“@”开头的 JSON 字段呢?

0 投票
1 回答
1239 浏览

php - 如何从 mongodb 中的 listDatabases 获取数据库名称?

我从以下查询中的 mongodb 变量中获取对象

我想从这个对象中提取数据库名称,例如 MGL,SiteStatus。请帮助我通过 php 代码提取它们。我试过像

它不工作。请帮忙!!!

0 投票
1 回答
160 浏览

mongodb - 将 mongo shell 查询作为字符串传递给 mongo-php-library

下面是我想使用 mongo-php-library 运行的查询,我想将查询作为字符串传递给驱动程序。不想将 json 转换为 php 数组。

这是我正在使用的库,mongo-php

我已经看过这个问题了

我使用 mongo c# 驱动程序做了类似的事情。下面是c#代码,

0 投票
2 回答
976 浏览

arrays - 在 PHP 中按数组字段的大小对 Mongo DB 集合进行排序

这里是 MongoDB 的新手,我很难做到这一点。我有一个数据库,其中包含一个名为帖子的集合。它具有以下结构(最简单的形式):

将 PHP 与新的 MongoDB 驱动程序一起使用,我希望运行一个查询,该查询返回按评论数量排列的文档。我使用了以下代码,但我不确定这是否是正确的方法:

任何帮助都感激不尽!感谢社区!

0 投票
1 回答
394 浏览

mongodb - 如何在php中进行mongo db聚合连接操作?

我在 mongodb 中有三个集合,例如

我对mongodb很新,而且驱动也更新了3.6,所以很难在php中找到最新的聚合方法。所以我正在调整下面的代码,以便在EmployeesTbl中添加部门和员工职位的实际值,例如“EmployeeTitleName”和“DepartmentName”。

请用最新的方法帮助我!!!

输出就像

array(2) { [0]=> object(MongoDB\Model\BSONDocument)#29 (1) { ["storage":"ArrayObject":private]=> array(25) { ["_id"]=> object (MongoDB\BSON\ObjectId)#10 (1) { ["oid"]=> string(24) "5a8176c0d2ccda13240015a6" } ["EmployeeNumber"]=> string(8) "25799989".... ... ....... ["DepartmentDetails"]=> object(MongoDB\Model\BSONArray)#27 (1) { ["storage":"ArrayObject":private]=> array(0) { } } [" JobTitleDetails"]=> object(MongoDB\Model\BSONArray)#28 (1) { ["storage":"ArrayObject":private]=> array(0) { } } } [1]=..... ……

0 投票
1 回答
391 浏览

php - 如何将以下 MongoDB 查询转换为 PHP?

下面的查询在 Studio 3T 和 Robomongo 中运行良好,但我想将其转换为 PHP 格式,

以下是我的查询,

我在下面尝试过,但它给出了错误“ Error: localhost:27017: FieldPath field names may not be empty strings.

PHP转换示例:

请帮我转换上面的查询。