我的應用程序基於使用rest api的Node.js和MongoDB。在Node.js + MongoDB中使用rest api插入和查詢JSON數據
我輸入數據的形式
var doc={"name":"ABX", duedate : new Date() }
它傳遞給服務器
/rest/update?doc=JSON.stringify(doc)
和將其轉換回JSON在服務器端像以前我在字符串化它:
var doc = JSON.parse(doc)
現在的問題是,它將數據串化爲:
var doc = {"name":"ABX","duedate":"2014-04-30T18:30:00.000Z"}
如果相同的值發送給mongo,那麼它將保存爲字符串的duedate。所以需要做一些像doc.duedate = new Date(doc.duedate)。但是我沒有任何字段定義,所以我怎麼知道某個字段需要轉換爲日期,有些字段沒有。
類似的情況下,使用MongoDB的_id字段。
我的客戶端2點的方式產生用於文件_id:
1:_id: 「student1」 - >的字符串是用戶類型指定
2:_id:535f7d05e1b08ddc13dfbaf0 - >的ObjectId通過MongoDB中生成的類型。
對於第二類型_id中,當從客戶端傳遞這將是一個 串不是OBJECTID。對於這兩種類型的文檔中,用戶將發送查詢 像/學生/查找查詢= {_ ID: 「student1」}? OR {_id: 「535f7d05e1b08ddc13dfbaf0」}。現在在服務器上,第二個查詢必須修改爲{_id:ObejctId(「535f7d05e1b08ddc13dfbaf0」)}。
我不知道如何區分兩者。
我現在面臨的主要問題是JSON發送文檔之間丟失從 客戶端向服務器端的數據類型
現在我包裹起來以字符串形式的客戶端,可以將其轉換回到服務器端。
由於mongoDB不是類型特定的,我不知道我應該在客戶端轉換什麼值,什麼不是。
在服務器端接收到用戶定義的和自我生成的字符串類型,這使得重新轉換艱鉅的工作。
我的要求是我不想在服務器端進行轉換。
- 客戶端可以發送任何對象或字符串,它應該被存儲爲是在後端。
這有可能以任何方式嗎?
你可以用它轉換:'VAR DOC = JSON.parse(DOC); doc.duedate = new Date(doc.duedate);',但你可能想[看這篇文章](http://stackoverflow.com/questions/3778428/best-way-to-store-date-time-在蒙古語中)。 –
@TimCooper我已更新我的問題。再看一遍。 – vashishatashu