级联在mongo中删除

时间:2018-09-12 08:33:56

标签: node.js mongodb mongoose postman

我是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 :(得分:0)

正如@ Geert-Jan所建议的,级联删除是我的解决方案。 geert-jan给出的link解决了我的问题。但是,我想知道能否在delete内为order, product调用其他已定义的delete_data函数