在Mongoose (MongoDB)中添加多对多关系的文档



我有一个用户集合和一个任务集合。多个用户可以拥有多个任务,多个任务可以拥有多个用户。我认为这样做的正确方法是以下模型:

var UserSchema = new Schema({
id: ObjectId,
username: { type: String, required: true },
assignments: [ {type : mongoose.Schema.ObjectId, ref : 'Assignment'} ]
});
var TaskSchema = new Schema({
id: ObjectId,
title: { type: String, default: '' },
information: { type: String, default: '' },
assignments: [ {type : mongoose.Schema.ObjectId, ref : 'Assignment'} ]
});
var AssignmentSchema = new Schema({
id: ObjectId,
isCompleted: { type: Boolean, default: false },
completionDate: { type: Date, default: null },
tasks: [ {type : mongoose.Schema.ObjectId, ref : 'Task'} ],
users: [ {type : mongoose.Schema.ObjectId, ref : 'User'} ]
});

如果上面的模型是正确的,如何插入一个具有多个用户分配的任务?我明白,你会创建任务文档首先得到它的ObjectId,但在那之后,你只是插入所有的分配到分配集合(与他们适当的任务和用户的ObjectId),这就是它吗?或者我必须插入所有的分配,然后编辑每个单独的User和Task,将AssignmentId插入到它们的分配属性中。

我确信已经有像这样的堆栈溢出问题,但我还没有找到一个。任何帮助都是感激的!

我相信你已经找到了问题的答案。

创建新任务,捕获任务id。然后找到或创建一个新用户,编辑或添加任务的id,捕获用户id。向任务添加用户id。对其他用户重复此操作。

我相信这是你在问题的最后部分所说的?

我不明白为什么这不能工作。

最新更新