我认为我的帖子标题有点模糊。让我澄清一下。
我有以下架构:
var listSchema = mongoose.Schema({
_owner: { type:ObjectId, ref: 'User' },
title: String,
description: String,
creation_date: { type: Date, default: Date.now }
});
var taskSchema = mongoose.Schema({
_taskList: { type: ObjectId, ref: 'List' },
title: String,
description: String,
creation_date: { type: Date, default: Date.now }
});
var List = mongoose.model('List', listSchema);
var Task = mongoose.model('Task', taskSchema);
每个任务'引用'列表'。是否可以保存新的任务'引用'列表'该集合中尚未存在?例如:
//assume I have a user.id
var NewList = new List({
_owner: user._id,
title: 'Test List',
description: 'List Description'
});
var NewTask = new Task({
_taskList : NewList, //ref to the document above (_id not created yet)
title: 'Task Title',
description: 'Task Description'
});
NewTask.save(function(err, task){
...
});
这样的事情是可能的还是我需要保存列表然后保存任务?
非常感谢!
答案 0 :(得分:0)
Mongoose实际上为新的doc客户端创建了_id
值,因此即使在保存之前,您也可以访问_id
NewList
。
所以你可以这样做:
var NewTask = new Task({
_taskList : NewList._id,
title: 'Task Title',
description: 'Task Description'
});