2013-04-23 4 views
1

J'ai un tableau de sous qui se compose de ids objetComment pouvons-nous interroger mongodb array of Objects ids?

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

Lorsque les utilisateurs se connectent, ils sont enregistrés par les sessions PHP:

var_dump($selections); 

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

Je les reçois des séances, puis de les utiliser dans une requête :

$selectionsFromSession= $_SESSION['selections']; 

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

Cette requête ne renvoie rien. Quel peut être le problème ici?

Répondre

0

Vous devez instancier l'objet MongoId.

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

Vous passez ensuite le tableau d'objets instanciés à votre requête.

+0

dois-je le faire avant de vous inscrire à sessin ou juste avant l'interrogation? – mustafa

+0

avant d'interroger – Howard

+0

Je pense toujours retourne vide – mustafa