были комменты.
const commentsSchema = Schema({
blabla: { type: Number, default: null },
array: [{ name: String, number: String, date: Date, kind: String }]
});
const postShema = Schema({
title: { type: String },
comments:[commentsSchema]
});
Почитав и подумав, я решил эти сущности разбить на 2 разных коллекции:
Post и Comments
И сделал так:
const postShema = Schema({
title: { type: String },
comments:[{ type: Schema.Types.ObjectId, ref: 'Comments' }]
});
const commentsSchema = Schema({
post: {
type: mongoose.Schema.Types.ObjectId,
ref: "Post",
required: true
},
blabla: { type: Number, default: null },
array: [{ name: String, number: String, date: Date }]
});
Но в коллекции Post, у меня еще лежат комменты, по старой архитектуре. Как мне лучше всего удалить их?
Пройтись циклом, удалить и проставить потом в схеме индекс? Спасибо
Пройтись по всем постам, если внутри есть коменты, то создать их и связать по id. Если данных много, то курсором надо пройтись, чтобы всё разом не вытягивать.
Это называется миграция. Да, тебе надо полностью трансформировать базу. Можешь делать итерациями, можешь агрегацией
Обсуждают сегодня