0
私は、ブログエントリを投稿しタグを付けることができるMongooseを持つノードのアプリケーションで作業しています。ブログのエントリーが削除されたら、そのブログのエントリーをブログから削除したい、そしてここで私は助けが必要です。タグからブログ参照を削除する
以下はブログエントリを削除するルートですが、「TypeError:ブログエントリを削除しようとすると、メソッド 'find'が未定義です」というメッセージが表示されるので、下のコードが間違っていると思います。ブログエントリの
app.post('/blog/delete/:id', function(req, res){
model.BlogPost.findById(req.params.id, function (err, blog){
if (err) {
console.log(err);
// do something
}
blog.remove(function(err) {
console.log(err);
// do something
});
var query = model.Tag.find({ blogs: { $in : blog } });
query.exec(function (err, tags) {
if (err) {
console.log(err);
// do something
}
tags.remove();
res.redirect('back');
});
});
});
モデル:タグの
var BlogPostSchema = new Schema({
name : String,
type : String,
author : ObjectId,
title : String,
body : String,
buf : Buffer,
date: { type: Date, default: Date.now },
comments : [CommentSchema],
meta : {
upvotes : Number,
downvotes : Number,
// points : { type Number, default: },
favs : Number,
uniqueIPs : [String],
tags : [String]
}
});
modelObject.BlogPost = mongoose.model('BlogPost', BlogPostSchema);
モデル:
var TagSchema = new Schema({
name : String
, blogs : [String]
});
modelObject.TagSchema = TagSchema;
modelObject.Tag = mongoose.model('Tag', TagSchema);