1
新しいコメントをブックスキーマに投稿するにはどうすればいいですか?Mongooseを使ってドキュメントを取得して参照ドキュメントに保存する方法
私の書籍スキーマはコメントを参照しています。私は既に新しいブックを追加するための投稿ルートを持っていますが、特定のブックに新しいコメントを追加するにはポストルートが必要です。 私がここで見つけたすべての例は、本のための新しいスキーマを作成していますが、私はidによって既に作成された正しい本のドキュメントを取り出し、新しいコメントを保存する必要があります。
これは本とコメントのための私のスキーマです。
var BookSchema = new Schema({
title : { type: String, required: true },
commentcount : Number,
comments : [{ type: Schema.Types.ObjectId, ref: 'Comment' }]
mongoose.model('Book', BookSchema);
var CommentSchema = new Schema({
book : [{ type: Number, ref: 'Book' }],
comment : { type: String, required: true },
});
mongoose.model('Comment', CommentSchema);
これは新しいコメントを保存しようとしている投稿ルートです。
.post(function(req, res){
var bookid = req.params.id;
var comment = req.body.comment;
var newcomment = new Comment({name: comment, book: bookid});
Book.findById(bookid, function(err, doc){
doc.comments.push(newcomment);
doc.commentcount += 1;
console.log(doc);
doc.save(function(err) {
// todo
});
});
おかげで –