Wenn Sie ein neues ObjectId in meinem node.js Skript erstellen, mit:Mongojs.ObjectId() erzeugt falschen Zeitstempel
mongojs.ObjectId()
ich eine _id wie
“f5818257dd0b55ce321f87b5”
bekommen Wenn ich benutze:
mongojs.ObjectId(“f5818257dd0b55ce321f87b5”).getTimestamp()
ich:
“Sun Jul 10 2016 19:12:21 GMT+0200 (CEST)"
Aber wenn ich ObjectId("f5818257dd0b55ce321f87b5").getTimestamp()
in der MongoDB Shell verwenden, erhalte ich:
ISODate("2100-07-10T12:23:51Z")
Als ich von _id
meine Dokumente sortieren möchten mit:
db.stores.find().sort({_id: -1})
Die Dokumente werden in der falschen Reihenfolge zurückgegeben, da die Timestamp in der ist falsch.
Wie bekomme ich Mongojs ObjectIds
im richtigen Format zu produzieren?
Ich bin wirklich verwirrt, kann mir jemand helfen?
Edit: Wenn ich ein Dokument mit mongojs einfügen erhalte ich eine ObjectId wie:
“30a282576f9f2c4772e69cd9”
Wenn ich den Zeitstempel mit:
ObjectId("30a282576f9f2c4772e69cd9").getTimestamp()
Es gibt:
ISODate("1995-11-09T22:36:07Z")
Aber wenn ich ein Dokument mit der MongoDB Shell einfüge bekomme ich eine ObjectId wie:
“5782a4809f3c4cbed9f2a8a1”
Wenn ich den Zeitstempel dieser ID erhalten mit:
ObjectId("5782a4809f3c4cbed9f2a8a1").getTimestamp()
ich:
ISODate("2016-07-10T19:39:44Z")
Diese beiden Dokumente werden wie 5 min auseinander geschaffen. Warum ist das Datum in der ObjectId falsch mit mongojs eingefügt?
Welche Version des MongoDB Node.js-Treibers verwenden Sie? Ich kann dieses falsche Verhalten mit dem 2.2.0 Node-Treiber reproduzieren (und https://jira.mongodb.org/browse/NODE-749), aber 2.1.21 und ältere Versionen scheinen in Ordnung zu sein. – Stennie
Danke ich war in der Tat mit mongodb 2.2.0 Ich aktualisierte auf 2.2.1 und jetzt funktioniert es wie erwartet. –