Подтвердить что ты не робот

MongoDB хранит массивы ObjectId's

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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