2012-10-17 5 views
0

J'ai un inconnu MongoDB mis en place comme ceci:PHP MongoDB la requête dans un tableau avec une clé

fieldName: { 
    "1": { 
     client: "name-here", 
     subfield: "more-junk-here" 
    }, 
    "2": { 
     client: "another-client-name-here", 
     subfield: "more-data" 
    }, 
    "3": { 
     client: "client-num-3", 
     subfield: "i-like-turkey-sandwiches" 
    } 
} 

Comment faire une requête pour "i-like-dinde-sandwichs", sans le savoir est en position 3 , et sans faire une recherche de l'ensemble du document? Je commencé à écrire cela, mais je suis tout à fait perplexe comment faire la recherche ...

$cursor = $collection->findOne(array('fieldName' => 'i-like-turkey-sandwiches)); 

Répondre

1

(edit: Ma réponse est valide que si le contenu fieldName est un tableau de sous-document et non un document avec « 1 »/2/3 comme la clé et que la valeur sous-document)

Si vous interrogez avec

$cursor = $collection->findOne(
       array('fieldName.subfield' => 'i-like-turkey-sandwiches')); 

Il vous renvoie tous les documents où vous avez un sous-corps dans un champ de fieldName avec cette valeur.

Questions connexes