2014-07-05 2 views
0

Ici, j'ai deux documents dans lesquels j'ai besoin de requête pour obtenir title="post one" et comments: userid="1" Je veux obtenir seulement les commentaires avec les critères ci-dessus. pas tous les commentaires.Comment extraire des tableaux imbriqués à partir d'un document en utilisant PHP Mongo

`{ "_id": ObjectId ("53b7f2383ed7755c2400002e"), "title": "Post One", "auteur": "bob", "affiché": ISODate (" 2014-07-05T12 : 40: 24.0Z "), ":" PageViews NumberInt (5), "commentaires": { "0": { "userID": "1", "texte": " c'est cool" }, "1": { "userID": "2", "texte": "cela est mauvais" }, "3": { "userID": "3", "texte": "ceci est un mauvais exemple" } "4": { "UserID": "4", "texte": "Pas Thanx" } "5": { "UserID": "1", "texte": « Non sa fine » } "6": { "userid": "1", "texte": "Test" } "7": { "userID": "1", "texte": "non Son fin ok pas mal" } "8": { "userID": "1", "texte": "Test ddd" }

}} `

{ "_id": ObjectId("53b7f2383ed7755c2400002e"), "title": "Post Two", "author": "bob", "posted": ISODate("2014-07-05T12:40:24.0Z"), "pageViews": NumberInt(5), "comments": { "0": { "userid": "1", "text": "this is cool" }, "1": { "userid": "2", "text": "this is bad" }, "3": { "userid": "3", "text": "this is badexample" } "4": { "userid": "4", "text": "No Thanx" } } }

+1

Pour certains, voir discussion pertinente: [récupérer uniquement l'élément interrogé dans un tableau d'objets dans la collection MongoDB] (http://stackoverflow.com/questions/3985214/retrieve-only-the-queried-element-in -an-object-array-in-mongodb-collection). – Stennie

Répondre

0

Les tableaux dans les documents peuvent être interrogés comme celui-ci

db.posts.findOne({comments: { $elemMatch: { userid: 1}}, 'title':"post one"}); 

Pour plus d'informations, voir ces questions:

+0

Notez que '$ elemMatch' ne retournera que le premier élément correspondant dans un tableau pour chaque document. Cela ne fonctionnera donc pas si vous voulez obtenir tous les commentaires correspondant '{userid: 1}' dans le post avec '{'title':" post one "}'. – Stennie

+0

J'ai besoin seulement des commentaires postés par seulement '1' et "titre" est "Post One" pas tous les documents – user3807753

+0

j'ai testé mais pas exécuté je n'ai pas besoin de tous les tableaux imbriqués j'ai besoin d'enregistrements imbriqués correspondants seulement. – user3807753

Questions connexes