2017-02-21 3 views
4

Ich habe versucht, das Datum von Javascript-Seite in MondoDB im ISODate-Format zu speichern. Aber es speichert nur das Datumsfeld in meinem MongoDB-Dokument im String-Format.JavaScript - So speichern Sie ein Datum im MongoDB-Dokument im ISODate-Format?

Hier ist das Objekt, das ich in die MongoDB sende, um als Dokument in einer bestimmten Sammlung gespeichert zu werden.

var currentDate = new Date(); 

postData = { 
    deviceID: deviceID, 
    companyID: companyID, 
    userID: userID, 
    date: currentDate 
}; 

Alles funktioniert gut, außer das Datumsfeld ist nur im String-Format gespeichert. Konnte keine SO Frage finden, die eine klare Antwort für dieses Problem auch geben könnte, wenn es einen gibt, verweisen Sie mich bitte an den richtigen Platz!

+0

Dies kann helfen http://stackoverflow.com/questions/21286599/inserting-and-querying-date-with-mongodb-and-nodejs – chridam

Antwort

4

Ich löste dies durch diese API Seite in meinem Knoten JS Handhabung. Das eigentliche Problem ist, dass ich dies als ein mit einem String versehenes JSON-Objekt an die API gesendet habe. obwohl es als neues Date() -Objekt eingestellt wurde, wird es stringifiziert.

So in meinem Knoten JS API Seite, bevor es in die MongoDB Sammlung einfügen ich dies getan haben,

var data = req.body.postData; 
var date = data[0].date; 
var dateObject = new Date(date); 
date[0].date = dateObject; 

Welche der Trick! Danke für die Antworten!

1

Sie können dies versuchen:

var currentDate = new Date(); 

postData = { 
    deviceID: deviceID, 
    companyID: companyID, 
    userID: userID, 
    date: currentDate.toISOString() 
}; 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString

+0

Danke für den Kommentar, aber ich habe das auch versucht. Es ist immer noch dasselbe, nur ein String wird als Datumsfeld gespeichert. –

+0

@RavinduFernando hmm ... ok. Ich denke, dann ist die Frage etwas anders als ich gelesen habe. Ich bin nicht vertraut mit Mongo Interna, aber akzeptierte Antwort auf diese Frage kann darauf hinweisen, dass was Sie sehen, ist nicht genau das, was gespeichert ist: http://StackOverflow.com/Questions/10908159/Why-Does-Mongo-Store-My-Date -as-a-string –

+0

Mai danke für den Punkt - Aber ich ging auch durch diese Antwort vor. aber das eigentliche Problem ist, ich möchte Mongo DB Gruppierung basierend auf dem ** Datum ** Wert, aber da seine nicht in Datumstyp die Mongo DB-Gruppierung funktioniert nicht wie erwartet. Aber wenn ich den Feldwert mit dem Robo Mongo Client als ISODate ändere und das Datumsfeld in den Datumstyp umwandele, funktioniert die Gruppierung einwandfrei. Deshalb möchte ich wirklich einen Weg finden, wie ich das Datum im ISODate-Format speichern kann. –

Verwandte Themen