猫鼬-有孩子ID的父母与有孩子ID的孩子

时间:2018-08-07 09:50:00

标签: node.js mongodb

我正在处理两个文档。我对哪种方法更好感到困惑。

选项1:

var personSchema = Schema({
   _id: Schema.Types.ObjectId,
   name: String,
   job: {
       type: Schema.Types.ObjectId,
       ref: 'Job',
   }
});

var jobSchema = Schema({
   _id: Schema.Types.ObjectId,
   title: String,
});

选项2:

var personSchema = Schema({
   _id: Schema.Types.ObjectId,
   name: String
});

var jobSchema = Schema({
   _id: Schema.Types.ObjectId,
   title: String,
   person: [
     {
        type: Schema.Types.ObjectId
     }
   ]
});

选项1,作业的ID嵌入在person对象中。 选项2,作业包含一组人员。

似乎有两个选项在做同一件事。

选项1.如果我删除工作记录,该人将不会更新。这意味着当我尝试删除作业时,我必须更新引用该作业的所有人员对象。

选项2。如果删除个人记录,则作业队列不会更新。这意味着,当我尝试删除人员时,必须从作业的人员队列中取出已删除的项目ID。

我做对了吗?哪种方法更好处理,或者有中间件来处理这种情况?

0 个答案:

没有答案