我有一个包含对象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 )), ....
这个查询没有返回任何结果。这里的问题是什么?
您需要实例化MongoId Object
foreach( $selections as &$selection ) {
$selection = new 'MongoId( $selection );
}
然后将实例化的对象数组传递给查询。