2016-05-11 45 views
0

在DocumentDB中,我們僅限於512KB的JSON文檔。DocumentDB,使用JSON文檔的小字段名稱來最大限度地減少長度

尋找答案here,要估計發送文件的大小,建議使用以下方法JsonConvert.SerializeObjectEncoding.UTF8.GetBytes(s)。即使使用.NET SDK也沒有壓縮的概念。

如果您使用自定義對象的數組,字段名稱可能會重複很多。

我的問題是:我應該嘗試使用JSON字段的短名稱來減小可讀性的大小嗎?你是否建議用JSON.NET提供的[JsonProperty]屬性覆蓋序列化的屬性名稱?

+0

這真的取決於你 - 很多方法來壓縮/縮小JSON(有幾個庫存在這樣做),包括你使用較短屬性名稱的建議。沒有單一的正確答案(並且工具/框架建議問題是無題的)。只是好奇(而不是直接相關的問題) - 你確認你的文件需要> 512K? –

+0

同意David。而且,我發現任何使您接近512K的數據建模可能過度非規範化。從不決定數組元素或子對象可以無限增長的數據模型是至關重要的。如果您想要強制限制數組字段或子對象中的元素數量,並且沒有自然限制(一輛汽車只有4個輪胎),那是一個警告信號。 –

+0

@DavidMakogon是的,我有一種情況,尤其是對於數組中文件數量超過512KB的數組。 –

回答

2

這裏是所有的評論答案:

@DavidMakogon「這真的取決於你 - 很多方法來壓縮/縮小JSON(幾個圖書館存在這這樣做),包括您的使用更短的財產的建議名字「。

我同意戴維。我會補充說,縮小字段名稱會對系統的可讀性/可調試性產生負面影響。

另一方面,我發現任何使您接近512K的數據建模可能過度非規範化。從不決定數組元素或子對象可以無限增長的數據模型是至關重要的。如果您想要強制限制數組字段或子對象中的元素數量,並且沒有自然限制(一輛汽車只有4個輪胎),那是一個警告信號。

在評論中,您指出該數組將無限增長。所以,我的建議是改變你的數據模型,以便數組中的每個元素都是一個單獨的文檔。你必須做兩次往返才能得到父母和孩子,但這就是SQL數據庫中的一個連接自動執行的事情,所以這不是執行問題的效率,只是對你的程序的小幅增加,你說你在評論中實現的分塊算法。

相關問題