我有一個MEAN堆棧應用程序。_id從ObjectId轉換爲MEAN應用程序中的字符串
在我的數據庫,文檔具有一個蒙戈的ObjectId像這樣:
{ "_id" : ObjectId("57e15b1009cb82cafafafd73"), "name" : "Hello", "artist_id" : "world", "year" : "2000" }
但是,當我在前端加載文件時,_id被轉換爲字符串,我的目標是這樣的,當登錄瀏覽器:
{ "_id" : "57e15b1009cb82cafafafd73", "name" : "Hello", "artist_id" : "world", "year" : "2000" }
什麼是惱人的是,當我想從我的前端修改我的數據庫(更新或刪除現有的文件),我必須將_id從字符串轉換成的ObjectId以將文檔定位到我的數據庫中... 所以在我節點應用,我有系統地按摩_id與new ObjectId(stringId)
因爲標識的瀏覽器發送的都是字符串...
Obvisouly我錯過了什麼。 我該如何讓事情更優雅?
'new ObjectId(stringId)'沒有什麼錯。由於JavaScript中沒有* ObjectId *類型,所以您需要使用mongo的ObjectId方法將其轉換爲一個。 – Molda
'ObjectId'在JSON中不是受支持的類型,因此(必要的)轉換爲'String'。 – robertklep
這是正常的,如@Molda所提到的,我使用spring-data mongo驅動程序,並將我的類id映射爲String,因爲在java中沒有ObjectId數據類型,驅動程序執行大部分工作,仍然很煩人地寫'new ObjectId (id)'當我們查詢時。也許司機並不像我們希望的那樣成熟。 –