MongoDB, хранящий массивы ObjectId
в моей базе данных я должен хранить массив идентификаторов объектов. Что я должен использовать? Что-то вроде этого:--5-->
[ObjectId("50350e12a36feb1be6000364"), ObjectId("57350e12a37fef1be6000922"), ObjectId("10350e17d34ffb1be6200925")]
или что-то вроде этого:
["50350e12a36feb1be6000364", "57350e12a37fef1be6000922", "10350e17d34ffb1be6200925"]
Я мог бы сэкономить место со вторым, а затем бросил в ObjectId
, но я теряю что-нибудь, используя этот подход? Do ObjectId
ы ведут себя как внешние ключи в реляционных базах данных?
2 ответов
Я бы определенно пошел с первым подходом, сохраняя ObjectId
s непосредственно. Это экономит место, как ObjectId
- Это 12 байт тогда как вторая строка подхода составляет 24 байта.
кроме того, если ObjectId
s используются для извлечения объектов позже, сохраняя как ObjectId
сохраняет какую-то перебранку.
Если у вас нет веской причины не хранить их как массив объектов. Это более компактный (12 байт против 24) и он более точно отражает то, что хранится. Он также может включить поддержку на уровне драйвера для следующих ссылок ObjectId.