1

我有一个由对象 ID 组成的子数组

 "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 )), ....

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

4

1 回答 1

0

您需要实例化 MongoId 对象。

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

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

于 2013-04-23T19:49:05.273 回答