Каскад Удалить в Монго - PullRequest
0 голосов
/ 12 сентября 2018

Я новичок в MongoDB. Я создал 4 коллекции, и они связаны друг с другом. (Я использую node.js, чтобы написать это)

Вот мой вопрос. Как я могу удалить все записи сразу? Есть ли что-то вроде deep level population?

Эта модель содержит все модели.

const DataModel = mongoose.Schema({
    _id: { type: mongoose.Schema.Types.ObjectId, ref: 'User', require: true},
    order: { type: mongoose.Schema.Types.ObjectId, ref: 'Order', require: true},
});

Модель пользователя

const userSchema = mongoose.Schema({//other stuff});

Модель заказа

const orderSchema = mongoose.Schema({
    product: { type: mongoose.Schema.Types.ObjectId, ref: 'Product', required: true },
    //other stuff
});

Модель продукта

const productSchema =  mongoose.Schema({//other stuff});

Я могу удалить запись с этим кодом из базы данных, но другие записи все еще там

exports.delete_data = (req, res, next) => {
const id = req.params.userId;
userDataModel.deleteOne({_id: id})
    .exec()
    .then(docs => {
        res.status(200).json({
            message: 'Record Deleted',
            request: {
                type: 'POST'
            }
        });
    })
    .catch(err => {
        console.log(err);
        res.status(500).json({
            error: err
        });
    });
};

Обновление: Однако, мне интересно, Могу ли я вызвать другие определенные delete функции для order, product внутри delete_data

1 Ответ

0 голосов
/ 13 сентября 2018

Как подсказывает @ Geert-Jan, каскадное удаление - это мое решение. ссылка , которую дал Гирт-джан, решает мою проблему.Однако, интересно, могу ли я вызвать другие определенные delete функции для order, product внутри delete_data

...