2011-10-09 5 views
0

Si je veux sélectionner des documents répondant à deux critères spécifiques, comment formater la requête? En ce moment j'ai actuellement ceci:

$params = array('$all' => array(
       array('parent.id'=>'1'), 
       array('owner_id'=>'8') 
     )); 
$data = $collection->find($params); 

Cette requête ne me rapporte aucun résultat ... any ideas ??

Répondre

0

Ouh .. utiliser:

$params = array('$all' => array(
       array('parent'=>array('id'=>'1')), 
       array('owner_id'=>8) 
     )); 
$data = $collection->find($params); 
+0

Merci monsieur, j'apprécie! En quoi cela diffère-t-il de ceci: $ params = array ('parent.id' => 1, 'owner_id' => 8); –

+0

MongoDB est une base de données JSON. Est-ce que db pour _objects_ et pour sous-élément use select in object. – TROODON

1

parent.id est un nombre entier?

Peut-être que:

$params = array('$all' => array(
       array('parent.id'=>1), 
       array('owner_id'=>8) 
     )); 
$data = $collection->find($params); 
+0

Non, ils sont des chaînes. Query find (array ('parent.id' => 1)) et find (array ('owner_id' => 8)) fonctionne bien, je dois les combiner pour que je reçoive tous les documents qui ont un parent ID d'un ET d'un identifiant de propriétaire de 8 –

+0

Je suis la réponse dans un autre commentaire – TROODON

+1

Sacré merde Je suis un idiot. La méthode correcte est: $ params = array ('parent.id' => 1, 'owner_id' => 8); –