我看到了其他类似的查询数组字段的问题,但大多数都是针对纯 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"]
]
]);
- 1 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消