Как сохранить JSON в MongoDB с сохранением связей?

Пытаюсь перенести sql-дамп в MongoDB. Перегнал это дело в json, чуть поменял структуру, и пробую из файла сохранить в БД. Проблема в том, что id записей в дампе были исключительно числовые, и в таком виде они не годятся в качестве ObjectId. А мне нужно сохранить связи между разными типами постов и категорий. Связи заданы именно через эти числовые айдишники.
Пробовал задавать _id в момент сохранения в таком виде:

new ObjectId(x.toString(2))

или
new ObjectId(x.toString(16))

или просто
x.toString(2)

но не работает. Есть ли какой-то способ конвертировать числовой id в то, что требует mongodb? А именно:

Argument passed in must be a single String of 12 bytes or a string of 24 hex characters


Ну или, может, какие-то другие варианты есть?
  • Вопрос задан
  • 319 просмотров
Решения вопроса 1
Ну или, может, какие-то другие варианты есть?

Есть. Использовать каждую СУБД по назначению и не пытаться запихнуть реляционные данные в документную БД.

А вообще, наверное стоит просто для независимых сущностей генерировать новые ObjectId, и протаскивать их во все зависимые сущности вместо соответствующих id. Ну т.е. не нужно пытаться решать задачу в лоб, пытаясь сконвертировать один id в другой, вам нужно сконвертировать СВЯЗЬ, а не id. Чтобы сконвертировать связь, вам не нужен оригинальный id, вам важно соединить с помощью нового ObjectId те же самые сущности, что были соединены в реляционной базе оригинальным id.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы