крючок мангуста или промежуточное программное обеспечение для триггерной базы данных? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть эта схема в мангусте.Я хочу удалить автора, который удалит все авторские истории.лучший способ сделать это в Middleware Express или Middleware Mongoose?спасибо

const authorSchema = new Schema ({
    name : String,
    stories : [{ type : ObjectId, ref:'Story'}]
})

const storySchema = new Schema({
    title : String
})

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Вы можете использовать связующее ПО Mongoose 'remove'.

Например:

 authorSchema.pre('remove', (next) => {
  storySchema.remove({authorSchema_id: this._id}).exec();
  next();
 });

И документация .

0 голосов
/ 24 апреля 2019

Поскольку это предполагает непосредственное взаимодействие с Mongoose и MongoDB, я бы предложил сделать это в промежуточном программном обеспечении Mongoose. Вот как бы вы удалили все stories из определенного объекта Author:

let myAuthor = new Author(/* all the props */);
myAuthor.stories = [];
...