为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 获取 MongoDB 中“对象数组”字段条件的文档

使用 PHP 获取 MongoDB 中“对象数组”字段条件的文档

PHP
哔哔one 2023-10-15 14:51:41
我看到了其他类似的查询数组字段的问题,但大多数都是针对纯 Mongo 的,我无法将解决方案转换为 PHP 的驱动程序“find()”。我在这里也发现了类似的问题,但我无法用它来解决我的问题。PHP驱动程序的文档也没有帮助,有一个 find() 示例,但字段不是像我的那样的数组。给我带来麻烦的字段是“Sentenca”,它是一个包含“Situacao”和“Prob”的数组。就像下面这样:"Sentenca": [{         "Situacao": "nc",         "Prob": 0.96         }]“Sentenca”始终仅包含一个具有这两个字段的索引 [0]。我需要查询“Situacao”不是“nc”的所有文档。我所知道的是我应该使用操作符 $nin 但我不知道如何使用 find() 来做到这一点。我得到的最远的是这个(并且这个查询没有做我需要的事情):$result = $collection->find( [ "Sentenca"=>["Situacao"=>['$nin'=>["nc"]]]] );编辑:我设法对“Situacao”应用 $nin 条件进行查询,但由于某种原因该查询不返回任何内容。如果我尝试回显这些条目,则会收到错误:Uncaught MongoDB\Driver\Exception\LogicException: Cursors cannot yield multiple iterators
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

MongoDB 论坛上有人解决了这个问题。您可以使用 '。' 要访问数组元素,请使用 $nin => 'nc'。


$result = $collection->find([


    "Sentenca.0.Situacao" => [

        '$nin' => ["nc"]

    ]

    

]);


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信