Я создаю новое приложение NodeJS на основе существующей базы данных.Я преобразовал существующую базу данных из MySQL в MongoDB.Я использовал MySQL Workbench для экспорта данных sql в JSON, а затем использовал mongorestore для восстановления данных в MongoDB.Это работает.
Существующая база данных MySQL использовала свойство autoIncrement для генерации целочисленного идентификационного номера для первичного ключа.
Например, таблица "people" имеет первичный ключ "PeopleID",целое число от 0 до примерно трех цифр, например, 1, 12 или 123.
Многие другие таблицы используют эту же технику.Таблица «Location» имеет «LocationID» в том же формате, который автоматически увеличивается.
В связанных таблицах первичный ключ хранится как внешний ключ, так же, как стандартная реляционная база данных.
Вот недавно импортированный документ в MongoDB.Монго сгенерировал _id для каждого документа.
{
"_id": "5ce89632c15df953bbe163e1", // newly created MongoDB ObjectID
"PersonID": 1, // old primary key
"LocationID": 12, // old foreign key
"FirstName": "John",
"MiddleName": "",
"LastName": "Smith"
}
Я хочу перестроить все ссылки, используя ObjectID вместо автоматически увеличиваемых целых чисел.Таким образом, в идеале новый документ должен выглядеть следующим образом с «внешним ключом» в качестве ссылки на ObjectID.
{
"_id": "5ce89632c15df953bbe163e1", // Use this as the reference instead of the old "PersonID"
"PersonID": 1, // old primary key
"LocationID": "5ce8358ec15df953bab163ea", // example ObjectID as a reference
"FirstName": "John",
"MiddleName": "",
"LastName": "Smith"
}
Можно ли программно перестроить отношения, используя ссылки с ObjectID вместо старых целочисленных значений?