2013-04-23 52 views
1

我有一个子阵列其中包括对象ID我们如何查询对象id的mongodb数组?

"selections" : ["5176d1f09de5ee2808028da9", "5176d1f09de5ee2808028e4d", "5176d1f09de5ee28080292fe", "5176d1f19de5ee2808029867"] 

的用户登录时,这些使用PHP会议注册:

var_dump($selections); 

array(16) { [0]=> string(24) "5176d1f09de5ee2808028a7c" [1]=> string(24) "5176d1f09de5ee2808029180" [2]=> string(24) "5176d1f09de5ee2808029283" [3]=> string(24) "5176d1f19de5ee280802990c"} 

我让他们从会议,然后在查询中使用它们:

$selectionsFromSession= $_SESSION['selections']; 

$list=$collection->find(array("_id"=>array('$in'=> $selectionsFromSession)), .... 

此查询不会返回任何内容。这里有什么问题?

回答

0

您需要实例化MongoId对象。

foreach($selections as &$selection) { 
    $selection = new \MongoId($selection); 
} 

然后,您将实例化对象的数组传递给您的查询。

+0

我应该在注册sessin之前还是在查询之前执行此操作? – mustafa 2013-04-23 19:57:49

+0

查询之前 – Howard 2013-04-23 19:58:04

+0

我认为仍然会返回空 – mustafa 2013-04-23 20:01:21

相关问题