Ich experimentiere mit der Ausgabe von Date-Objekten als Schlüssel in einer Map-Funktion und kann nicht verstehen, was passiert, wenn das Date-Objekt nicht korrekt analysiert wird.Wenn ein Datum in einer CouchDB Map-Funktion ausgegeben wird - was wird für das Datumsobjekt aufgerufen?
ein einfaches Beispiel Datensatz verwenden:
{
"_id": "e3681a4f5ce5685b777659804e9fd9f1",
"date": "2016-04-04T16:02:09.058+01:00" // okay datestring
}
{
"_id": "99a5c50967a279e1d7fef1a4ed18d7fb",
"date": "2016-04-34T16:02:09.058+01:00" // invalid datestring
}
{
"_id": "43a435ce71a4b92ab0dd4fe9d91fbbb2",
"date": "text" // invalid datestring
}
Und die folgende Karte Funktion:
function(doc) {
var date = new Date(doc.date);
emit(date,1);
}
ergibt folgendes Ergebnis Satz:
{"total_rows":3,"offset":0,"rows":[
{"id":"43a435ce71a4b92ab0dd4fe9d91fbbb2","key":null,"value":1},
{"id":"99a5c50967a279e1d7fef1a4ed18d7fb","key":null,"value":1},
{"id":"e3681a4f5ce5685b777659804e9fd9f1","key":"2016-04-04T15:02:09.058Z","value":1}
]}
Wo sind die Nullwerte für Der Schlüssel kommt von? Es ruft nicht toString()
oder toISOString()
an den Daten, da sie zurückgeben würden "Invalid Date"
Was ist hier los?
Ah ich glaube, ich sehe here.JSON.stringify() das Datum ungültig Objekt null analysieren, wie hier beschrieben: https://developer.mozilla.org/en/docs/Web/JavaScript/Referenz/Global_Objects/JSON/stringify – Ric
@Ric Ja, 'neues Datum (" 2016-04-34T16: 02: 09.058 + 01: 00 "). ToJSON()' gibt 'null' zurück. – OrangeDog
Ich habe gerade festgestellt, dass die Funktion 'Date.parse()' '' NaN' mit Datumszeichenfolgen wie "2016-04-34 16:02:09" zurückgibt, wenn man Ansichten mit JavaScript in CouchDB programmiert. Es muss im Format "2016-04-34T16: 02: 09" sein. – NecipAllef