Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果文档引用了Mongodb中的其他文档,则不应删除该文档_Javascript_Node.js_Mongodb_Express_Mongodb Query - Fatal编程技术网

Javascript 如果文档引用了Mongodb中的其他文档,则不应删除该文档

Javascript 如果文档引用了Mongodb中的其他文档,则不应删除该文档,javascript,node.js,mongodb,express,mongodb-query,Javascript,Node.js,Mongodb,Express,Mongodb Query,我是MongoDB的新手,遇到了一个问题。基本上,当一个文档(即A)引用到另一个文档(即B)时。不应删除文档A。但是如果我先删除B,那么只有我才能删除A,因为现在A没有引用任何其他文档 我已经尝试过预中间件,这里是我的代码 model.collection('inventory').pre('deleteOne', function(next) { model.collection('inventory').Inventory.deleteOne({_id: this.i

我是MongoDB的新手,遇到了一个问题。基本上,当一个文档(即A)引用到另一个文档(即B)时。不应删除文档A。但是如果我先删除B,那么只有我才能删除A,因为现在A没有引用任何其他文档

我已经尝试过预中间件,这里是我的代码


    model.collection('inventory').pre('deleteOne', function(next) {
       model.collection('inventory').Inventory.deleteOne({_id: this.id}, { _id: { $ne: this.id } }, {multi: 
        true});
    });

下面是模式

```
schema 1:
{
_id: 1,
parent_id: null;
name: A
}

schema 2:
{
_id: 2,
parent_id: 1;
name: B
}
```
我认为它可以通过预中间件方法实现。请帮助我的代码,以实现我的结果。我也对另一种方法持开放态度


谢谢

参考文件和参考文件是否属于同一收藏?谢谢您的回复。对它属于同一个集合。子文档是否可以有更多的子文档?
this.id
也是您的父id吗?是的,可以有更多的子文档。this.id不是父id它是文档id,即使用find query检查文档是否为父id。例如:
model.collection('inventory')。查找({parent\u id:this.id})
如果此返回空数组,则删除该文档,否则不删除。引用的文档和引用的文档是否属于同一个集合?感谢您的回复。对它属于同一个集合。子文档是否可以有更多的子文档?
this.id
也是您的父id吗?是的,可以有更多的子文档。this.id不是父id它是文档id,即使用find query检查文档是否为父id。例如:
model.collection('inventory')。查找({parent\u id:this.id})
如果此返回空数组,则删除文档,否则不删除。