MongoDB存储ObjectId的数组

Fra*_*sta 18 foreign-keys mongodb objectid

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

[ObjectId("50350e12a36feb1be6000364"), ObjectId("57350e12a37fef1be6000922"), ObjectId("10350e17d34ffb1be6200925")]
Run Code Online (Sandbox Code Playgroud)

或类似的东西:

["50350e12a36feb1be6000364", "57350e12a37fef1be6000922", "10350e17d34ffb1be6200925"]
Run Code Online (Sandbox Code Playgroud)

我可以用第二个节省空间,然后投射到ObjectId,但是我是否通过这种方法失去了任何东西?不要ObjectId小号表现得像在关系数据库中的外键?

jho*_*ola 25

我肯定会采用第一种方法,ObjectId直接存储s.这节省了空间,ObjectId12个字节,而第二个接近字符串是24个字节.

此外,如果ObjectId稍后使用s来获取对象,则存储会ObjectId节省一些麻烦.


Joh*_*yHK 11

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

  • +1,是的,我认为在问题中对ObjectIds的大小存在基本的误解. (4认同)