【发布时间】:2017-03-26 06:22:46
【问题描述】:
有人可以帮我做猫鼬手术吗?我目前正在构建这个投票系统。
我有这个Poll 模型:
var Poll = new Schema({
title: {
type: String,
required: true
},
options: [{text:String, count: {type: Number, default: 0}}],
author: {
type: Schema.ObjectId,
ref: 'Account',
},
disabled: {
type:Boolean,
default: false,
},
date: {type: Date, defalut: Date.now},
});
我有这个 Log 模型:
var Log = new Schema({
ip: String,
voter: {
type: Schema.ObjectId,
ref: 'Account'
},
poll: {
type: Schema.ObjectId,
ref: 'Poll'
},
date: {type: Date, defalut: Date.now},
});
每次用户投票时,日志都会创建如下内容:
{ ip: '::1',
voter: 5824e7c3b6e659459818004f,
poll: 58264b48f767f2270452b5cb,
_id: 58264b4cf767f2270452b5ce }
现在如果用户删除他的一项投票,例如 58264b48f767f2270452b5cb,我还想删除所有具有相同投票 ID 的日志文档。
我阅读了一些其他答案,并提出了一个中间件
Poll.pre('remove', function(next){
var err = new Error('something went wrong');
this.model('Log').remove({poll: this._id}, function(err){
if (err) throw err;
})
next(err);
});
但它根本不起作用。
我该怎么办?谢谢。
【问题讨论】:
标签: node.js mongodb mongoose model ref