Обязательно ли хранить ссылки на документы как тип ObjectId в Mon go? - PullRequest
0 голосов
/ 27 мая 2020

Читая mon go docs для моделирования отношений «многие ко многим», я вижу, что они используют простые строки для _id

{
   _id: "oreilly",
   name: "O'Reilly Media",
   founded: 1980,
   location: "CA"
}

{
   _id: 123456789,
   title: "MongoDB: The Definitive Guide",
   author: [ "Kristina Chodorow", "Mike Dirolf" ],
   published_date: ISODate("2010-09-24"),
   pages: 216,
   language: "English",
   publisher_id: "oreilly"
}

, где, как я полагал, было бы полезно использовать фактические ObjectId значений в соответствии с этим вопросом: Разница между хранением ObjectId и его строковой формы в MongoDB

Мне сложно использовать приведение между объектом и строкой в ​​качестве этих данных передает туда и обратно между Frontend (Vue) и backend (NestJS / Node) как JSON, и мне интересно, есть ли реальная необходимость беспокоиться об использовании ObjectId, поскольку это добавляет изрядную сложность.

Имеет ли значение сохранение ссылочного идентификатора в виде строки при выполнении агрегации / $ graphLookup? Я действительно хочу сохранить эту ссылку как ObjectId или это совершенно не нужно?

1 Ответ

1 голос
/ 27 мая 2020

Единственное требование к значениям _id - они должны быть уникальными, поскольку _id всегда автоматически индексируется MongoDB, и этот индекс уникален.

Цель ObjectID - позволить клиенту для создания идентификатора, который гарантированно будет уникальным для широкого круга клиентов, которые пишут в одну и ту же коллекцию. Если у вас есть лучший уникальный идентификатор, вам рекомендуется использовать его, поскольку он сохраняет вам индекс. Вам не не нужно преобразовывать это значение в ObjectID. Его можно использовать в открытом виде, как и другие типы (например, целые десятичные числа и т. Д. c.).

...