J'ai accédé à l'API Facebook Graph pour obtenir un objet JSON représentant les derniers messages de mon flux (mon mur Facebook). Je l'ai ensuite sauvegardé dans une collection MongoDB appelée feeds en utilisant le pilote PHP Mongo.Interrogation du sous-ensemble MongoDB Deux niveaux profonds avec le pilote PHP
//$post['feed']['data'] contains the Facebook JSON object of wall posts
//create a mongo instance
$mongo = new Mongo();
//access the feeds collection
$feeds = $mongo->changeup->feeds;
//dump the feed right into mongo
$feeds->insert($post['feed']['data']);
C'est ce que l'un des tableaux ressemble à la lecture de retour tout l'objet qui a été placé dans mongo. Je ne vous en montre qu'un seul, mais il me donne plusieurs autres, chacun indexé, le suivant est [1] => Array() et ainsi de suite ... certains sont structurés différemment, car certains contiennent le [ histoire], d'autres contiennent le champ [message], et certains contiennent les deux.
Query:
$cursor = $feeds->find();
foreach ($cursor as $feed) {
print_r($feed);
}
Result:
[0] => Array
(
[id] => 505212695_10150696450097696
[from] => Array
(
[name] => John Doe
[id] => 505212695
)
[story] => "Text of a story I posted on my wall..."
[story_tags] => Array
(
[38] => Array
(
[0] => Array
(
[id] => 15212444
[name] => John Doe
[offset] => 38
[length] => 10
[type] => user
)
)
)
[type] => status
[application] => Array
(
[name] => Share_bookmarklet
[id] => 5085647995
)
[created_time] => 2012-04-04T05:51:21+0000
[updated_time] => 2012-04-04T05:51:21+0000
[comments] => Array
(
[count] => 0
)
)
Le problème est que je ne veux pas trouver juste la collection, je veux trouver que les tableaux qui ont dit [message] et [histoire] champs, puis trouver tout leur contenu et rien autre.
Je suis en train de recevoir un sous-ensemble, deux niveaux de profondeur:
//this works, however, I'm only able to get the 0 array
$cursor = $feeds->find(array(), array('0.story' => true));
Comment filtrer tous les tableaux?
Je veux que mon résultat final ressemble à ceci:
Array
(
[_id] => MongoId Object
(
[$id] => 4f7db4dd6434e64959000000
)
[0] => Array
(
[story] => "Text of a story I posted on my wall..."
)
[1] => Array
(
[story] => "Text of a story I posted on my wall..."
)
[2] => Array
(
[story] => "Text of a story I posted on my wall..."
[message] => "In this case message text exists as well..."
)
[3] => Array
(
[message] => "Text of a message I posted on my wall..."
)
etc...
)
Merci beaucoup, ça marche! – Allen