MongoDB, хранящий массивы ObjectId

в моей базе данных я должен хранить массив идентификаторов объектов. Что я должен использовать? Что-то вроде этого:--5-->

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

или что-то вроде этого:

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

Я мог бы сэкономить место со вторым, а затем бросил в ObjectId, но я теряю что-нибудь, используя этот подход? Do ObjectIdы ведут себя как внешние ключи в реляционных базах данных?

2 ответов


Я бы определенно пошел с первым подходом, сохраняя ObjectIds непосредственно. Это экономит место, как ObjectId - Это 12 байт тогда как вторая строка подхода составляет 24 байта.

кроме того, если ObjectIds используются для извлечения объектов позже, сохраняя как ObjectId сохраняет какую-то перебранку.


Если у вас нет веской причины не хранить их как массив объектов. Это более компактный (12 байт против 24) и он более точно отражает то, что хранится. Он также может включить поддержку на уровне драйвера для следующих ссылок ObjectId.