2016-04-04 9 views
3

Ich versuche, Dokumente zu verwandeln, die so etwas wie diesesKann ich das MongoDB-Dokument so transformieren, dass es ein Array in einem Array enthält?

{ "_id": 1, 
    "created_at": DateTimeObject, 
    "daily": [{ "impressions":13, 
       "clicks": 13, 
       "day": "2015-01-01" }, 
      { "impressions":15, 
       "clicks": 15, 
       "day": "2015-01-02" }, 
      { "impressions":20, 
       "clicks": 20, 
       "day": "2015-01-03" }] 
} 

zu

suchen
{ "_id": 1, 
    "impressions": [["2015-01-01", 13], 
        ["2015-01-02", 15], 
        ["2015-01-03", 20]], 
    "clicks": [["2015-01-01", 13], 
      ["2015-01-02", 15], 
      ["2015-01-03", 20]] } 

zur Zeit mit Entspannen und Gruppe I, die Daten in das unten stehende Format

{ "_id": 1, 
    "impressions": [{ "date": "2015-01-01", "value":13], 
        {"date":"2015-01-02", "value":15}, 
        {"date":"2015-01-03", "value":20}], 
    "clicks": [{"date": "2015-01-01", "value":13}, 
      {"date": "2015-01-01", "value":15}, 
      {"date": "2015-01-01", "value":20}] } 

ich bekommen kann Ich möchte das nicht außerhalb der db machen, weil es etwa 150 - 200 Liniendiagramme gibt, die aus ähnlichen Dokumenten erzeugt werden müssen und j bevorzugen würden Wir müssen die Transformation haben.

BEARBEITEN: Wäre dies mit Karte reduzieren möglich?

+0

Sie könnten Ihre Daten in Ihr benötigtes Schema einfügen. – Simulant

+0

@Simulant ja könnte ich aber dieses Format ist auch für andere Abfragen im Leerlauf. Also ich glaube nicht, dass das im Moment eine Option ist – heaven00

+0

@Simulant kann dies mit map reduce gemacht werden? – heaven00

Antwort

0

Mongodb kann das innere Array nicht unterstützen. Sie müssen nur mit "Abwickeln" und "Gruppe" schreiben.

+1

Gibt es irgendwelche Arbeit dafür? – heaven00

+0

Laut mir sollten Sie schreiben wie Sie im letzten Code gesagt haben. –

+0

Das ist der letzte Ausweg :) – heaven00

Verwandte Themen