删除一对一和一对多引用-猫鼬

删除一对一和一对多引用-猫鼬,第1张

删除一对一和一对多引用-猫鼬

关系:

  1. 一个
    one-to-one is a relationship
    这样的状态只有一个省会城市和省会城市只有一个州的首府
  2. 一个
    one-to-many is a relationship
    使得母亲有许多孩子,和孩子只有一个妈妈
  3. 一个
    many-to-many is a relationship
    这样的一本书可以由几个作者或合着者写的,而一个作者可以写几本书。

一对一关系- 如果

Project/Group
删除了a ,如何更新我的
Assignment
架构。

通常,您将一个

project
映射到一个,
assignment
并且类似地将一个
assignment
映射到一个
project
。您可以在此处执行的 *** 作是删除项目,然后
project
在分配模型中找到关联的对象并删除其引用。

delete: function(req, res) {   return Project.findById(req.params.id, function(err, project){         return project.remove(function(err){  if(!err) {      Assignment.update({_id: project.assignment}}, {$pull: {projects: project._id}},     function (err, numberAffected) {      console.log(numberAffected);} else {  console.log(err);   }       }); });        });}

一对多关系- 如果

Project/Group
删除了a ,如何更新我的
Assignment
架构。

在这种情况下,我们将删除一个项目,然后查找所有

assignments
属于该项目的项目,并从中
project
删除其引用。在这种情况下,单个项目可能会有很多分配。

delete: function(req, res) {   return Project.findById(req.params.id, function(err, project){         return project.remove(function(err){  if(!err) {      Assignment.update({_id: {$in: project.assingments}}, {$pull: {project: project._id}},      function (err, numberAffected) {      console.log(numberAffected);} else {  console.log(err);   }       }); });        });}

删除中间件

您可以

middleware
通过Johnny指出的方法实现相同的目的,只是对此进行了更正。

ProjectSchema.pre('remove', function (next) {    var project = this;    project.model('Assignment').update(        { projects: {$in: project.assignments}},         { $pull: { project: project._id } },         { multi: true },         next     );});

通常情况下,可能有许多

projects
属于,
assignment
而许多
assignments
属于同一
project
。模式中将有一个
assignment
列,
Project
其中一个项目将与多个分配相关。

注意:
删除中间件将不适用于模型,而仅适用于您的文档。如果要使用

remove
中间件,请确保在delete函数中
project
先找到id,然后在返回的值上
document
应用remove方法,以便上面的方法起作用…
delete函数将如下所示。

delete: function(req, res) {   return Project.findById(req.params.id, function(err, project){         return project.remove(function(err){  if(!err) {       console.log(numberAffected);  } });         }); }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5475390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存