MongoDB存储ObjectId的数组

时间:2012-09-17 18:04:19

标签: mongodb foreign-keys objectid

在我的数据库中,我必须存储一个对象ID数组。我该怎么用?像这样:

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

或类似的东西:

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

我可以用秒来节省空间,然后转换为ObjectId,但是我是否通过这种方法失去了任何东西? ObjectId的行为类似于关系数据库中的外键吗?

2 个答案:

答案 0 :(得分:25)

我肯定会采用第一种方法,直接存储ObjectId。这节省了空间,如ObjectId is 12 bytes,而第二个进场字符串是24个字节。

此外,如果稍后使用ObjectId s来获取对象,则存储为ObjectId可以省去一些麻烦。

答案 1 :(得分:11)

除非你有充分的理由不将它们存储为ObjectIds数组。它更紧凑(12个字节对​​24)并且更准确地反映了存储的内容。它还可以为跟随ObjectId引用启用驱动程序级支持。