2013-01-02 54 views
3

有多種教程像thisthis其描述節約使用JSON.parse方法,它返回DBOBJECT JSON數據。雖然它是非常簡單和簡單的保存JSON數據的方式,但我想知道爲什麼需要解析JSON?我不能直接將我的JSON字符串直接保存到Mongo中而不解析,我發現mongo shell可以做到這一點。MongoDB的商店JSON字符串通過Java

我之所以問這個是因爲我有塊數千份文件,我可以通過不解析數據保存時間!

簡而言之就是有一些司機

Collection coll = new Collection("mycollection"); 
coll.save("[{datakey1:dataval1},{datakey2:datavalue2},...]"); 
+2

MongoDB是一個BSON商店不是一個JSON店,控制檯可以這樣做,因爲JSON和JS對象在語法類似。我還想補充一點,將JSON解碼爲您的母語對象,然後在沒有任何實際驗證的情況下將其保存下來只是要求被黑客入侵,這是銷燬任何類型的注入保護MongoDB本地查詢優惠的最糟糕方法。 – Sammaye

+0

你對BSON很對。另外,要保存的數據只是來自RDBMS系統的備份數據。沒有消費者或沒有「攻擊者」來執行SQL或腳本注入 – Rishabh

+0

好吧,所以你有一個場景,這不應該太可怕。但是啊,你需要先解碼做到這一點,因爲它是從你的RBDMS一個導入你可能想要使用批量插入過這裏,它可以執行比'save' – Sammaye

回答

0

此基礎上你的使用情況,如果插入DBOBJECT列表,它實際上將導致MongoDB的多個文件中以下形式的Java方法。這似乎是一個奇怪的情況下使用MongoDB的,它可以存儲這樣的:

{ 
    id: 507f191e810c19729de860ea, 
    value: '[[{"hpisymptoms":"of days in past 2 weeks depression free?"},{"hpisymptoms":"*"}]]' 
} 

你只能這樣做,如果你從來沒有打算查詢JSON數據,這是什麼蒙戈所擅長的。這聽起來像是這樣,因爲json數據存儲在RDBMS字段中。

+0

好吧,這些數據以常規的列行格式存儲在RDMS中,但是在將它從一臺服務器發送到另一臺服務器的過程中,我們將它們編組爲JSON。一旦在接收器處收到,我們就不得不在內存中解組。 – Sap

+0

那麼是否打算將Mongodb用作RDBMS的JSON緩存? – ltfishie

+0

我會稱之爲倉庫 – Sap