我看到了其他類似的查詢數組字段的問題,但大多數都是針對純 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 關注
- 106 瀏覽
添加回答
舉報
0/150
提交
取消