2016-06-21 2 views
0

Ich habe mehrere Daten, die die gleichen sind, und ich möchte die Daten so gruppieren, dass ich ein Array von time und bg_reading habe, weil es mehrere Werte für das gleiche Datum gibt. Das ist es, was mein JSON ausspuckt.Kann ich Spalten meiner Datenbank bei der Ausgabe als JSON in einem Array gruppieren?

`[ 
    { 
    "date": "2016-03-18T00:00:00.000Z", 
    "time": "22:03:54", 
    "bg_reading": 9.4 
    }, 
    { 
    "date": "2016-03-19T00:00:00.000Z", 
    "time": "12:05:56", 
    "bg_reading": 12.4 
    }, 
    { 
    "date": "2016-03-20T00:00:00.000Z", 
    "time": "01:17:06", 
    "bg_reading": 15.5 
    }, 
    { 
    "date": "2016-03-21T00:00:00.000Z", 
    "time": "06:27:42", 
    "bg_reading": 17.1 
    }, 
    { 
    "date": "2016-03-22T00:00:00.000Z", 
    "time": "06:19:21", 
    "bg_reading": 27.6 
    }, 
    { 
    "date": "2016-03-22T00:00:00.000Z", 
    "time": "17:03:27", 
    "bg_reading": 14.5 
    }, 
    { 
    "date": "2016-03-18T00:00:00.000Z", 
    "time": "22:03:54", 
    "bg_reading": 9.4 
    }, 
    { 
    "date": "2016-03-19T00:00:00.000Z", 
    "time": "12:05:56", 
    "bg_reading": 12.4 
    }, 
    { 
    "date": "2016-03-20T00:00:00.000Z", 
    "time": "01:17:06", 
    "bg_reading": 15.5 
    }, 
    { 
    "date": "2016-03-21T00:00:00.000Z", 
    "time": "06:27:42", 
    "bg_reading": 17.1 
    }, 
    { 
    "date": "2016-03-22T00:00:00.000Z", 
    "time": "06:19:21", 
    "bg_reading": 27.6 
    }, 
    { 
    "date": "2016-03-22T00:00:00.000Z", 
    "time": "17:03:27", 
    "bg_reading": 14.5 
    }, 
    { 
    "date": "2016-03-18T00:00:00.000Z", 
    "time": "22:03:54", 
    "bg_reading": 9.4 
    }, 
    { 
    "date": "2016-03-19T00:00:00.000Z", 
    "time": "12:05:56", 
    "bg_reading": 12.4 
    }, 
    { 
    "date": "2016-03-20T00:00:00.000Z", 
    "time": "01:17:06", 
    "bg_reading": 15.5 
    }, 
    { 
    "date": "2016-03-21T00:00:00.000Z", 
    "time": "06:27:42", 
    "bg_reading": 17.1 
    }, 
    { 
    "date": "2016-03-22T00:00:00.000Z", 
    "time": "06:19:21", 
    "bg_reading": 27.6 
    }, 
    {enter code here 
    "date": "2016-03-22T00:00:00.000Z", 
    "time": "17:03:27", 
    "bg_reading": 14.5 
    } 
]` 

Ich hatte gehofft, es so etwas haben:

`[ 
    { 
    "date": "2016-03-18T00:00:00.000Z", 
    "time": ["05:22:33", "09:33:10", "15:01:34", "18:03:34", "21:34:09"], 
    "bg_reading": [9.4, 6.3, 13.3, 6.8, 7.3] 
    }... 
]` 

Aber jetzt habe ich keine Ahnung, warum zum Teufel es so viele sich wiederholende Werte sind und warum gibt es mehrere Termine. So habe ich versucht, es auf Sequelise abzufragen.

Antwort

0

Zunächst einmal - es ist in der Tat seltsam, dass Sie mehrere Einträge für das gleiche Datum erhalten. Meine Vermutung wäre, dass sich die Daten tatsächlich in der Tageszeit unterscheiden, auch wenn es nicht so aussieht. Versuchen Sie, den Datumsteil zu extrahieren. Da Sie nicht den SQL-Dialekt angegeben haben, werde ich Beispiele in psql geben, aber Sie sollten in der Lage sein, mysql ähnlich zu finden usw.

group: 'date_trunc('day', date)' 

Will Gruppe durch das Datum Teil nur (den Datetime kürzt nach unten zu Tag, so dass Stunde, Minuten, Sekunden usw. 0)

um Arrays für die Zeit zu bekommen und bg_reading Sie es als solches wählen müssen - in pg diese Funktion aufgerufen wird array_agg (group_concat in mysql)

attributes: [sequelize.fn('array_agg', sequelize.col('time')) ...], 
Verwandte Themen