Безопасно ли создавать несколько полей ObjectID в одном документе mongodb? - PullRequest
0 голосов
/ 19 января 2019

Я посмотрел в официальном руководстве для объяснений "что такое ObjectId тип равен"

Они утверждают, что если документу не хватает идентификатора объекта, он будет создан:

В MongoDB каждый документ, хранящийся в коллекции, требует уникального поля _id, которое действует как первичный ключ.Если во вставленном документе пропущено поле _id, драйвер MongoDB автоматически создает ObjectId для поля _id.

Формулировка была слишком неявной.Что если я определю свои собственные поля objectId с другим именем, например parentID?Будет ли он использовать его в качестве идентификатора документа или создаст дополнительное «внутреннее» поле _id.

Я хочу создать древовидную структуру в базе данных, где каждый объект - документ - должен иметь свой собственный идентификатор, плюс он может иметь родителя и массив братьев и сестер (которые могут быть либо пустыми, либо заполнены некоторыми objectId с).

Мне требуется дерево-как и навигация для mongoose в приложении Express, поэтому я подумал, что Schema.findById() методы - лучший способ - они обеспечивают поиск объектов, а также проверку приведения типов и гарантируют, что objectId также уникален для каждого документа (не требуетсязаписанная функция хеширования)

Так безопасно ли использовать несколько objectId s в одном документе таким образом?


Вот связанный вопрос ,это показало, что я могу использовать Schema.ObjectId.

...