2014-06-13 62 views
0

我需要查找保存在Mongodb文档中的数组。Mongodb + PHP =>在多维数组中查找查询运算符

下面是文档:

{ 

"hashtag" : "World", 
"topimages" : [ 
     { 
      "cluster" : "france", 
      "id_tw" : "477170636327227393" 
     }, 
     { 
      "cluster" : "france", 
      "id_tw" : "477170636327227396" 
     } 

    ] 

} 

我要搜索如果一个名为“世界”关键“主题标签”的文件,已经保存在数组“topimages”一个id“id_tw鸣叫“的值为‘477170636327227393’

我试图做的是:

$query = array('hashtag' => "World", array('topsimages.$.id_tw' => "477170636327227393")); 
$xpmm->find($query); 

我需要搜索,如果一份名为‘世界’早已保存在阵列鸣叫‘的topimages’他的键“id_tw”。

非常感谢。

解决方案:如果它是一个子文档,而不是一个数组

$query = array('hashtag' => "france", 'topimages.id_tw' => "477170282852286464"); 

回答

0

topimages.x只会工作。你想$elemMatchMongo DB Documentation

$query = array('hashtag' => "World", 'topsimages' => array("$elemMatch" => array("id_tw" => "477170636327227393"))); 
+0

它不也行:'$查询=阵列( '#标签'=> “法国”,阵列('topimages '=> array('$ elemMatch'=> array(“id_tw”=>“477170636327227393”))));' – Xanarus

+0

用代码在答案中再试一次。我第一次在topimages周围添加了一个额外的数组。 – kwolfe

0

使用没关系:

$query = array('hashtag' => "france", 'topimages.id_tw' => "477170282852286464");