Ich habe eine MEAN-Stack-Anwendung._id von ObjectId in Zeichenfolge in MEAN-Anwendung konvertiert
In meiner Datenbank, ein Dokument ein Mongo ObjectId wie solche:
{ "_id" : ObjectId("57e15b1009cb82cafafafd73"), "name" : "Hello", "artist_id" : "world", "year" : "2000" }
Aber wenn ich das Dokument in meinem vorderen Ende zu laden, die _id in einen String umgewandelt wird, und mein Objekt sieht wie folgt aus, wenn im Browser protokolliert:
{ "_id" : "57e15b1009cb82cafafafd73", "name" : "Hello", "artist_id" : "world", "year" : "2000" }
Was ärgerlich ist, ist, dass, wenn ich meine Datenbank von meinem Frontend ändern möchten (Update oder ein vorhandenes Dokument löschen), ich habe die _id von String ObjectId zu konvertieren, um zu Ziel das Dokument in meiner Datenbank ... Also in meiner Knoten-Anwendung muss ich systematisch die _id mit new ObjectId(stringId)
massieren, weil die vom Browser gesendeten Id Zeichenfolgen sind ...
Obvisouly Ich vermisse etwas. Wie kann ich die Dinge eleganter machen?
Es ist nichts falsch über 'neue ObjectId (StringId)'. Da es in JavaScript keinen * ObjectId * -Typ gibt, müssen Sie die Methode ObjectId von mongo verwenden, um sie in einen zu konvertieren. – Molda
'ObjectId' ist kein unterstützter Typ in JSON, daher die (notwendige) Umwandlung in' String'. – robertklep
Dies ist normal, wie von @Molda erwähnt, ich habe Spring-Data-Mongo-Treiber verwendet und meine Klassen-ID als String zugeordnet, da es in Java keinen ObjectId-Datentyp gibt, der Treiber macht den Großteil der Arbeit, es ist immer noch nervig, 'neue ObjectId 'zu schreiben (id) 'wenn wir abfragen. Vielleicht sind die Fahrer nicht so ausgereift, wie wir es gerne hätten. –