Je semble avoir des problèmes avec le curseur lorsque j'essaie de sortir des données d'un MongoDB. Voici une capture d'écran de ma structure de données simple:Impossible d'accéder aux valeurs dans MongoDB avec le curseur en utilisant PHP
data structure screenshot http://droplr.com/IpcH+
Je suis en train d'utiliser les éléments suivants:
$collection_name = "users";
$collection = $this->mongo->db->$collection_name;
$which_document = array("email" => $email_address);
$which_fields = array("words");
$cursor = $collection->find($which_document, $which_fields);
Mais mon curseur $ ne semble pas aller plus loin dans le document que le document réel. À la fin, je cherche tri() et limite() sur le champ created_at dans le champ «words», mais je semble être dans une impasse ici. Et le passage d'erreur de MongoDB n'est pas très utile, ou je ne sais pas comment l'utiliser correctement. (Je suppose que le dernier.)
Une idée: Je ne suis pas sûr que la table "mots" générée entre crochets est correcte, mais voici le code que j'utilise pour insérer des données ici:
function create_word($word, $email_address){
$collection = 'users';
// make sure word isn't null
if($word !== NULL){
// add new data to the 'words' set
$new_data = array('$addToSet' => array('words' => array(
'word' => $word,
'status' => 'open',
'created_at' => time()
)));
$this->mongo->db->$collection->update(array('email' => $email_address), $new_data);
}
Merci beaucoup pour toute aide que vous pouvez donner!
Ah, la notation dot! Existe-t-il une règle stricte sur quand on devrait utiliser la notation par points dans le pilote php? Malheureusement, pas de chance. Voici une [capture d'écran] (http://droplr.com/hHjj) d'un var_dump de la valeur du curseur en utilisant [ce code] (http://droplr.com/QUJW). Est-ce que j'ai raté quelque chose de vos mises à jour? Je vais vraiment trier sur created_at, mais j'ai essayé d'alterner entre "1" et "-1", sans différences. –
J'étais curieux et j'ai essayé moi-même maintenant. Le tri des sous-documents ne fonctionne pas. L'exemple de la documentation couvre un type différent de tri où vous avez imbriqué des valeurs dans un document et trier tous les documents après eux et non un tableau imbriqué. – halfdan
Intéressant. C'est mon premier projet avec MongoDB, de votre point de vue, suggérez-vous une sorte de restructuration des données? Cela semble être un problème assez important, car je vais essentiellement paginer ces données, il serait très agréable d'utiliser .limit(), .skip() et .sort(). –