1

今のところ、サブドキュメントを削除したい場合は、次のようにします。

Post.findById(post_id).exec(function(err, post) {
  post.comments.remove({'_id': comment_id});
  post.save(function(err) {
    res.end("Hooray!");
  });
});

コメントを削除するたびに投稿全体がDBからフェッチされ、多くのものが添付されているため、これは私には最適ではないようです。それで、親ドキュメントをフェッチせずにサブドキュメントを変更することは可能ですか?

4

1 に答える 1

1

ドキュメントによると、ドキュメントをフェッチせずに更新する場合は、手動で更新要求を実行する必要があります。私の場合、次のコードになります。

Post.update({'_id': post_id}, {$pull: {'comments': {'_id': comment_id}}}).exec(function(err){
  console.log('Hooray!');
});

これは実行可能な優れたソリューションですが、直接リクエストを実行すると、バージョン管理と同様に検証が機能しないことを意味します。

于 2013-01-19T09:55:11.133 に答える