在 PHP 中使用聚合方法和新的 MongoDB 驱动程序类

2023-12-10

我是蒙戈新手。

我尝试获取文档的子文档,这是我的文档:

{
    "_id" : ObjectId("5900ab35c720b210c000032c"),
    "name" : "B 1",
    "providers" : [ 
        {
            "id" : ObjectId("59030550c720b211dc005e9e"),
            "name" : "F 1"
        }, 
        {
            "id" : ObjectId("59030577c720b211dc005e9f"),
            "name" : "F 2"
        }
    ]
}

我想得到这个子文档:

{
    "id" : ObjectId("59030577c720b211dc005e9f"),
    "name" : "F 2"
}

我想我需要使用这些类:http://php.net/manual/en/mongocollection.aggregate.php但我没有设法将它与我的类的管理器实例一起使用:http://php.net/manual/en/class.mongodb-driver-manager.php.

PHP 手册没有展示如何将其与新的驱动程序一起使用。

有人能帮我吗?

谢谢你,美好的一天!


您不必为该任务使用聚合。

您可以使用常规查询来选择嵌入数组中的第一个匹配的子文档。

您可以通过几种方式来处理它。

$位置投影

$filter = ['_id' => new MongoDB\BSON\ObjectID("5900ab35c720b210c000032c"), 'providers.id' => new MongoDB\BSON\ObjectID("59030577c720b211dc005e9f") ];

$options = ['projection' => ['_id' => 0, 'providers.$' => 1],];

$elemMatch投影

$filter = ['_id' => new MongoDB\BSON\ObjectID("5900ab35c720b210c000032c")];

$options = [
        'projection' => ['_id' => 0, 'providers' => ['$elemMatch'=> ['id' => new MongoDB\BSON\ObjectID("59030577c720b211dc005e9f")]]],
    ];

您将使用executeQuery 来运行常规查询。

$query = new \MongoDB\Driver\Query($filter, $options);

$cursor = $manager->executeQuery(dbName.collectionName, $query); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中使用聚合方法和新的 MongoDB 驱动程序类 的相关文章

  • 相同的单词但不同的 unicode 字符

    我在 Windows 上使用 Python 构建了一个关于越南餐馆的问答应用程序 要编写越南语字符 我需要使用 Unicode 首先 我从使用 HTML charset utf 8 的 TripAdvisor 网站克隆数据并构建我的 Mon
  • PHP mail() 函数不发送邮件

    我有一个小问题 我正在使用一个工作脚本 在我的测试帐户 共享服务器上工作 使用 mail 函数通过 PHP 发送邮件 我刚刚得到了一个专用服务器 但我还无法让该功能发挥作用 在过去的 10 个小时左右的时间里 我阅读了有关 BIND 用于
  • 更新重复密钥上的复合密钥 [重复]

    这个问题在这里已经有答案了 我需要更新新行 如果两者都满足 date dat and empId who 作为复合键 但如果其中之一或两者不同 则插入 sql INSERT INTO history SET endtimestamp now
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • 从twitter api实体参数php获取图像url

    我正在尝试通过实体参数使用 php 获取并显示在推文中发布的图像 我的 url 中有 include entities 可以看到返回的 json 中的实体 在我的 foreach 循环中 我正在执行以下操作 foreach results
  • Ubuntu 18.04升级后php7.2-curl无法安装

    今天从 16 04 升级到 18 04do release upgrade d 在升级过程中 我被告知一些软件包将被删除 其中包括 删除 libperl5 22 lxc common perl modules 5 22 php imagic
  • $_POST、$_GET 和 $_REQUEST 之间有什么区别?

    我对这些超级全局变量有点困惑 POST GET and REQUEST 在 PHP 中 在 PHP 中哪些场景需要使用这些变量 这三个变量的主要区别是什么 POST是在使用 application x www form urlencoded
  • TCPDF/PHP 和字体:大写数字(血统数字?旧样式?)

    我得到了一种特殊的字体 上面有这样的数字 例如 正如您在 3 上看到的 一些数字下降到基线以下 我想要实现的是 这些数字不会低于该线 并且看起来像这样 在 Word 中 可以在相同字体的字符设置中轻松设置 如何在 TCPDF 中呈现数字 我
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • 如何在无法重启的服务器(Apache)上使用gettext?

    我在服务器故障上问了这个问题 https serverfault com questions 104224 how do you use gettext on server apache you cant restart但我没有得到任何回应
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 如何在 Laravel 代码中使用 Artisan 命令?

    如何在我的 php caode Ex 中使用 Artisan 命令行 php artisan version to 您可以从控制器调用 Artisan 命令 如下所示 calling of migrate install Artisan c
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • Laravel 5.3:护照实现 - {“error”:“invalid_client”,“message”:“客户端身份验证失败”}

    我按照中提到的确切步骤进行操作Laracast Laravel 5 3 的新增功能 Laravel Passport https laracasts com series whats new in laravel 5 3 episodes
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • 图像创建从jpeg() PHP

    我正在使用 imagecreatefromjpeg 函数合并两张图片 现在我面临的问题是 当我使用服务器中的图片时 它工作正常 而当我使用其他网站的图片时 它不起作用 例如 当我使用这个 PHP 文件时http coolfbapps in
  • 禁用/启用用户访问/下载,但允许 php 编辑 - 使用 chown 和 chmod

    我想 move uploaded files到某个文件夹 比方说http localhost myproject protected 并且 PHP 应该能够rm mv cp 里面的一切protected 例如 启用 禁用用户对任何文件的访问
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp

随机推荐

  • PHP 获取键在某个范围之间的值

    有没有什么有效的方法来获取值 关键在范围之间 例如 我想要一个键为 13 的值或该数组中包含 13 的任何范围 如您所见 第二个元素的范围是 11 25 所以我应该得到这个值 因为11 25还包括13 array array 0 10 gt
  • Android 版 Javafx 的音频性能(MediaPlayer 和 NativeAudioService)

    我使用 JavaFX 创建了一个运行良好的桌面游戏 20000 Java 行 由于它是一个游戏 实时约束很重要 玩家操作的响应时间 最终目标是在 Android 上运行该应用程序 我几乎已经完成了从PC到Android的 Java代码传输
  • 引用 CSS 文件时,IE 不支持基本元素中的相对路径

    我有一个网站使用base tag为相对 URL 设置绝对路径 它在我测试过的所有浏览器中运行良好 除了 IE 大惊喜 根据 IE 对 CSS 文件的请求 它似乎没有注意到基本标签 它确实承认基本标签以及页面上的其他所有内容 为什么会发生这种
  • pyplot.show() 重新打开旧的 tkinter 对话框

    编辑 这似乎是 Mac OS 系统上仅限于 Tcl Tk 的问题 因此 如果您没有这方面的经验 这个话题可能没有意义 None
  • pentaho Spoon/pid:如何每次将文件移动到不同名称的文件夹?

    我每个月都会有新的文本文件 从中提取数据并进行一些转换 在每个月底 我需要将这些文件移动到名称为当前日期的文件夹中 这意味着 目标文件夹的名称每次都不同 我之前迈出了一步move files创建一个文件夹 其名称为当前日期 exp 2019
  • 将 uint8_t 数据与字符串进行比较

    这听起来可能有点奇怪 或者问题可能是一个微不足道的问题 但在我一生的大部分时间里 我都在使用 PHP 编程 是的 我知道这听起来如何 所以当我转向 C 时 有些东西对我来说非常陌生 由于 php 习惯 所以我使用 struct 加载 wav
  • 如何从用户输入中打印单个单词

    如何从java中的用户输入中打印出单个单词 例子 用户输入 我们爱妈妈 她是最好的 该程序假设打印 mom 因为第一个和最后一个字符是相同的 我的代码最后没有打印任何内容 这是我的代码 Scanner s new Scanner Syste
  • 如何将 javascript (js) Map 传递给 Spring Boot Controller?

    我有一个包含键值对的 Java 脚本映射 我需要将其发送到 spring boot 控制器 例子 var myMap new Map myMap set 1 value1 myMap set 2 value2 我无法在 Spring Boo
  • 如何为暴露多个端口的服务配置 Istio 的虚拟服务?

    我有一个暴露多个端口的容器 因此 为部署配置的 kubernetes 服务如下所示 kind Service apiVersion v1 metadata name myapp labels app myapp spec selector
  • Angular 2 AOT 不像我的组件中的 moduleId

    我该如何解决这个问题 据我所知 JIT 需要组件上的 moduleId 来查找模板和样式 如果组件有 但是 AOT 不使用模块 并且在编译 AOT 时会出现 找不到名称 模块 错误 我不想检查所有模块并删除 AOT 的 Id 因为我仅使用
  • 在 Lucene 中使用 WikipediaTokenizer 的示例

    我想在 lucene 项目中使用 WikipediaTokenizer http lucene apache org java 3 0 2 api contrib wikipedia org apache lucene wikipedia
  • 定位已检查输入的标签

    如果我有一个包含在标签内的无线电输入 那么在检查输入时如何定位标签 div p Payment Plan p div
  • 如何对包含 R 函数的 pyspark RDD 进行分区

    import rpy2 robjects as robjects dffunc sc parallelize 0 robjects r rnorm 1 robjects r runif dffunc collect Outputs 0
  • Eigen 中三元运算符的类型错误

    我正在用 C 编写一个类来概括两个稀疏矩阵求解器 SparseLU 和 Sparse Cholesky 当我尝试使用三元运算符时 它说操作数类型不兼容 但如果我使用 If 语句 代码就会编译 错误 2 错误 操作数类型不兼容 const E
  • FopFactory.newInstance() 时出现 Fop 异常

    我正在使用 struts 2 并且尝试使用 fop 从 xml 和 xsl 创建 pdf 文件 我在这两个网址的基础上开发我的代码http svn apache org viewvc xmlgraphics fop trunk exampl
  • 可观察链表

    在我的 WPF 应用程序中 我有一个 ItemsControl 其项目值取决于前一个项目显示的 ViewModel 是一个音频文件 分为可变长度的部分 我需要以这种方式显示它 右侧显示日期时间 这就是我需要计算的内容 我只知道每个部分的长度
  • 当 Kubernetes 中的 configmap 更新时重新启动 Pod?

    当配置映射更改 更新时 如何自动重新启动 Kubernetes Pod 和与部署关联的 Pod 我知道有人在讨论当配置映射更改时自动重新启动 Pod 的能力 但据我所知 这在 Kubernetes 1 2 中尚不可用 所以 我认为 我想做的
  • 在powerpoint vba中更改图表的数据源

    我在 PowerPoint 中有一个条形图 想要选择行 类别 1 4 请参阅屏幕截图1 取决于我在组合框中的选择 到目前为止 这是我的代码 Private Sub ComboBox1 Change With SlideShowWindows
  • Php.Advance周历一周[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中获取下一个 上一个 ISO 周和年份 我正在尝试编写一个脚本 该脚本将在表格中显示一周中的几天 并且如果单击按钮 该脚本将前进一周 我设法让它一直工作到年底 然后日期就全部出错了 他就是
  • 在 PHP 中使用聚合方法和新的 MongoDB 驱动程序类

    我是蒙戈新手 我尝试获取文档的子文档 这是我的文档 id ObjectId 5900ab35c720b210c000032c name B 1 providers id ObjectId 59030550c720b211dc005e9e n