Mongo Karte Reduzieren ersten mal
Ersten mal " Map/reduce user hier, und mit MongoDB. Ich habe viele Seite besuchen Daten, die ich gerne etwas Einblick in die Verwendung von Map/reduce. Unten ist im Grunde, was ich tun will, aber als totaler Anfänger eine Map/reduce, ich denke, das ist oben meines Wissens!
- Gehen durch alle Seiten mit besuchen in den letzten 30 Tagen, und wo externe = true.
- Dann für jede Seite, finden Sie alle Besuche
- Gruppe alle Besuche durch überweisung Lage
- Für jede überweisung Ort, berechnen, wie viele gingen dann auf eine Seite besuchen, die hat einen bestimmten "Typ" und hat auch ein bestimmtes Wort in den "tags".
Die Datenbank und Datenerfassung als
$mongo->dbname->visits
Einem Beispiel-Dokument:
{"url": "www.example.com", "type": "a", "refer": {"external": true, "domain": "twitter.com", "url": "http://www.twitter.com/page"}, "page": "1235", "user": "1232", "time": 1234567890}
Und dann möchte ich finden Sie Dokumente des Typs B mit einem bestimmten tag.
{"url": "www.example.com", "type": "b", "page": "745", "user": "1232", "time": 1234567890, "tags": {"a", "b", "c"}}
Ich bin mit dem normalen Mongo PHP-Erweiterung, wenn das einen Einfluss hat.
Welche Datenbank-Struktur haben Sie? Wie ist Ihre Sammlungen und Dokumente organisiert?
Hinzugefügt obigen post. Das helfen?
OK, dein Beispiel-Dokument beinhaltet nicht eine "überweisung" eine "externe" oder eine "tags" - Feld. Was Sie ' re darauf hindeutet, ist in der Tat kompliziert, so dass Sie wahrscheinlich benötigen, um uns zu zeigen, mehr als ein Dokument. Und Sie werden wahrscheinlich brauchen, um es zu zeigen mit all den details.
Ich habe an etwas gearbeitet, das ist genau der gleiche ist wie der (besuchen, verfolgen mit mongo), poste ein paar mehr details und ich kann vielleicht helfen.
Aktualisiert, diese bieten mehr info für Euch? Dank
Hinzugefügt obigen post. Das helfen?
OK, dein Beispiel-Dokument beinhaltet nicht eine "überweisung" eine "externe" oder eine "tags" - Feld. Was Sie ' re darauf hindeutet, ist in der Tat kompliziert, so dass Sie wahrscheinlich benötigen, um uns zu zeigen, mehr als ein Dokument. Und Sie werden wahrscheinlich brauchen, um es zu zeigen mit all den details.
Ich habe an etwas gearbeitet, das ist genau der gleiche ist wie der (besuchen, verfolgen mit mongo), poste ein paar mehr details und ich kann vielleicht helfen.
Aktualisiert, diese bieten mehr info für Euch? Dank
InformationsquelleAutor James | 2010-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich habe mir etwas einfallen lassen, dass ich denke tun können, was Sie wollen. Beachten Sie, dass dies funktioniert möglicherweise nicht genau, da bin ich mir nicht 100% sicher, Ihr schema (in Anbetracht Ihrer Beispiele zeigen
refer
erhältlich in Typ a, aber nicht b (ich bin mir nicht sicher, ob das ein Versäumnis, oder, was in Anbetracht, das Sie anzeigen möchten, indem referer)... wie auch immer, hier ist, was ich mir ausgedacht habe:Die map-Funktion:
Reduzieren " - Funktion:
Also im Grunde, wie es funktioniert, ist dies. Die Map-Funktion verwendet, einen Schlüssel zu finden.url (das, was ich vermutete, basierend auf Ihrer Beschreibung). So das Endergebnis Aussehen wird wie ein array mit
_id
gleich zu finden.url (Gruppen auf url-Basis). Es erstellt dann ein Objekt, zwei Objekte, die unter (Arten und tags). Der Grund für das Objekt, so dass Karte und reduzieren emittieren die gleiche format-Objekt. Other than, die ich DENKE, es sollte relativ selbsterklärend (Wenn du das nicht verstehst, kann ich versuchen, mehr zu erzählen)...Also lassen Sie uns diese umsetzen in PHP (unter der Annahme, dass
$map
und$reduce
sind strings mit den oben genannten enthalten mit Sie für frische):Hinweis, habe ich noch nicht getestet. Das ist genau das, was ich mir ausgedacht habe, basierend auf meinem Verständnis von Ihr schema, und von meinem Verständnis von Mongo und seine Map-Reduce-Implementierung...
InformationsquelleAutor ircmaxell
Karte reduzieren, die bereits bei Mongo DB ODM:
http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/map-reduce.html
InformationsquelleAutor hamczu