【问题标题】:mongodb find nested field not work in phpmongodb发现嵌套字段在php中不起作用
【发布时间】:2017-04-09 14:16:40
【问题描述】:

我是 php 和 mongodb 的新手。我想在 php 中找到所有符合条件的数据。 以下mongodb结构:

'Food' => 
array (size=4)
  '_id' => 
    object(MongoId)[36]
      public '$id' => string '587e4a89974711036c97d3e5' (length=24)
  'CaseId' => string 'c002' (length=4)
  'Level' => string '4' (length=1)
  'food' => string 'banana' (length=6)

我尝试在 Food 对象中搜索“food”值。我做了一些研究。我有一些方法可以处理。但是,我找不到任何东西。我不知道哪里错了?希望有人可以教我。 这是我的查询:

$cursor=$collection->find(array("Food.food"=>array('$in'=>["banana"])));

$cursor=$collection->find(array('Food'=>array('food'=>"banana")));
$cursor=$collection->find(array('Food.food'=>"banana"));

经过研究,我知道 MongoDB 支持点表示法。资源来自 enter link description here 我也找到了一些获取嵌套字段的方法 enter link description here 我按照链接 2 输入 mongodb 指南针。我可以得到我想要的结果,但是当我按照结构输入php时。它没有任何结果。 这些代码发生了什么?我很困惑。谢谢。

【问题讨论】:

  • 第三条注释行必须有效。如何检查查询结果?
  • 在程序中,我没有在第一个字符中输入“//”。也许我会修改它。

标签: php mongodb


【解决方案1】:

我找到其他方法来解决这个问题。如果有人像我一样遇到这种情况,你可以试试下面的方法。

$query= array(  
'$match'=>array('Food.food'=>'banana')
);

$cursor=$collection->aggregate($query);

您可以输入$cursor['result'] 接收搜索结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多