[英]Querying associated models using MEAN stack
我正在嘗試使用Epic具有許多任務的MEAN來建立模型關聯。 我先創建Epic,然后在創建任務時將其關聯。 任務數據模型與Epic相關聯,如下所示:
task:
{ name: 'my first task',
epic:
{ name: 'My fist epic',
_id: 52f511c605456ba4c936180d,
__v: 0},
_id: 52f511d605456ba4c936180e,
__v: 0 } }
在我的公共Epics控制器中,我正在嘗試使用當前Epic的ID查詢所有任務,但是我運氣不高。 下面的查詢返回所有任務,而不是與我的Epic相關的任務。
Tasks.query({“epic._id": $routeParams.epicId}, function(tasks) {
$scope.tasks = tasks;
});
有沒有使用MEAN進行關聯和檢索的更好方法? 我有點菜鳥。 提前致謝!
編輯:我一直在創建一個新任務時更新史詩的想法。 在app / controllers / tasks.js中,此代碼不起作用。
exports.create = function (req, res) {
var task = new Task(req.body)
Epic.find(req.body.epic.id, function (err, epic) {
if (err) return next(err)
epic.tasks.push(task.id);
epic.save();
})
task.save()
res.jsonp(task)
}
您還在使用貓鼬嗎? 我會使用“參考”和“填充”。 首先,您有一個TaskSchema。
var TaskSchema = new Schema({ ... });
mongoose.model('Task', TaskSchema);
添加模型等,然后在其他架構中引用它。 我將添加一個或多個任務的示例。
var Schema = new Schema({
task: {
type: Schema.ObjectId,
ref: 'Task'
},
tasks: [
{ type: Schema.Types.ObjectId, ref: 'Task'}
]
});
然后用填充來調用它。
this.findOne({
_id: id
}).populate('tasks').exec(cb);
看來您需要協助調試xhr。 讓我們跟蹤步驟:
您需要發布更多信息和代碼以了解問題所在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.