Mongoose を使用して検索内からドキュメントを更新する際に問題が発生しています。この問題は、ドキュメントをオブジェクト (doc = req.body など) で上書きしようとした場合にのみ発生します。ただし、元のドキュメントのプロパティを特定の文字列に直接設定することはできます (例: doc.name = 'jason borne';)。
res.body がオブジェクトであることを確認したので、このように設定できない理由がわかりません。
Client.findById(req.params.client_id, function (err, client) {
if (err)
return next(new restify.InternalError(err));
// client.name = 'jason borne';
client = req.body;
client.save(function(err) {
if (err)
return next(new restify.InternalError(err));
res.send(client);
});
});
ドキュメントをオブジェクトに設定しようとすると、次のエラーが表示されます。
TypeError: オブジェクト # にはメソッド 'save' がありません
シンプルな Client.update(...) コマンドで更新できることは承知していますが、この方法ではスキーマ ミドルウェアや検証を実行できません (これはMongoose のドキュメントに記載されています)。
何かご意見は?NodeとMongooseは初めてです。