【问题标题】:Cascade Delete in mongomongo中的级联删除
【发布时间】:2019-02-16 20:09:03
【问题描述】:

我是 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_data 中为 order, product 调用其他已定义的 delete 函数

【问题讨论】:

  • 您可能正在寻找“级联删除”功能。见问答here
  • @Geert-Jan 我会立即检查。我会回复的
  • @Geert-Jan 有没有办法在'delete.data'中调用其他定义的删除函数

标签: node.js mongodb mongoose postman


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-10-12
    • 2019-09-22
    • 1970-01-01
    • 2010-09-07
    • 2018-07-29
    • 2015-04-24
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多