Я посмотрел в официальном руководстве для объяснений "что такое ObjectId
тип равен"
Они утверждают, что если документу не хватает идентификатора объекта, он будет создан:
В MongoDB каждый документ, хранящийся в коллекции, требует уникального поля _id, которое действует как первичный ключ.Если во вставленном документе пропущено поле _id, драйвер MongoDB автоматически создает ObjectId для поля _id.
Формулировка была слишком неявной.Что если я определю свои собственные поля objectId с другим именем, например parentID
?Будет ли он использовать его в качестве идентификатора документа или создаст дополнительное «внутреннее» поле _id
.
Я хочу создать древовидную структуру в базе данных, где каждый объект - документ - должен иметь свой собственный идентификатор, плюс он может иметь родителя и массив братьев и сестер (которые могут быть либо пустыми, либо заполнены некоторыми objectId
с).
Мне требуется дерево-как и навигация для mongoose в приложении Express, поэтому я подумал, что Schema.findById()
методы - лучший способ - они обеспечивают поиск объектов, а также проверку приведения типов и гарантируют, что objectId
также уникален для каждого документа (не требуетсязаписанная функция хеширования)
Так безопасно ли использовать несколько objectId
s в одном документе таким образом?
Вот связанный вопрос ,это показало, что я могу использовать Schema.ObjectId
.