2012-09-17 74 views
18

在我的數據庫中,我必須存儲一個對象ID數組。我應該使用什麼?事情是這樣的:MongoDB存儲ObjectId的數組

[ObjectId("50350e12a36feb1be6000364"), ObjectId("57350e12a37fef1be6000922"), ObjectId("10350e17d34ffb1be6200925")] 

或者是這樣的:

["50350e12a36feb1be6000364", "57350e12a37fef1be6000922", "10350e17d34ffb1be6200925"] 

我可以節省空間,與第二,然後轉換爲ObjectId,但我失去我用這個方法什麼? ObjectId在關係數據庫中的行爲與外鍵相同嗎?

回答

25

我肯定會與第一種方法走,ObjectId小號直接存儲。這節省了空間,如ObjectId is 12 bytes,而第二個方法字符串是24個字節。

此外,如果ObjectId用於稍後取回對象,則存儲爲ObjectId可以節省一些麻煩。

11

除非你有一個很好的理由,否則它們存儲爲的ObjectID的數組。它更緊湊(12字節與24字節),它更準確地反映了存儲的內容。它也可以爲後續ObjectId引用啓用驅動程序級別的支持。

+4

+1,是的,我認爲這個問題對ObjectIds的大小有一個基本的誤解。 –