2016-06-23 9 views
1

Aus irgendeinem Grund speichert MongoDB C# -Treiber Daten als Anzahl von Millisekunden seit der Unix-Epoche.MongoDb mit C# -Treiber Speicherdatum im ISO-Format

Es ergibt sich Daten wie dieses

"ends" : [ 
     NumberLong(636021024270000000), 
     0 
    ] 

serialisiert ich Daten möchten Menschen lesbaren und serialisiert im ISO-Format sein. Gibt es dafür eine Lösung? Ich konnte keinen finden.

+1

Wenn Sie MongoDB.BSon mit Ihren C# -Objekten verwenden, sollten Sie den Standard DateTime-Datentyp verwenden können. Wenn Sie dies bereits tun, kann es hilfreich sein, wenn Sie einen Teil Ihres Codes anzeigen, indem Sie die Objekte in Ihre Sammlung einfügen. – shiitake

+0

http://stackoverflow.com/q/2883576/447156 –

+1

Der MongoDB-Treiber speichert "DateTime" -Objekte standardmäßig im ISO-Format. Verwenden Sie das DateTime-Objekt in Ihren Modellen? Können Sie uns Ihr Modell zeigen? –

Antwort

-1

Ich lief in das gleiche Problem und es auf diese Weise festgelegt:

YourInitializedObjectWithDateField item = GetObject(); 

JavaScriptSerializer jss = new JavaScriptSerializer(); 
jss.MaxJsonLength = int.MaxValue; 
var json = jss.Serialize(item).Replace("\"\\/Date(", "new Date(").Replace(")\\/\"", ")"); 

BsonDocument bsonDoc = BsonDocument.Parse(json); 

diesen Ansatz folgend, sollten Sie das Datum in Mongo im ISO-Format gespeichert bekommen. Der Trick besteht darin, das Datum so zu übergeben, als würden Sie das Datumsobjekt wie in JavaScript initialisieren.

+0

Ich würde dies als ein Hack oder Workaround bestenfalls – mare

+0

Warum der Downvote? – RizJa