markModified してみよう
findOneで取り出してきたドキュメントを編集してsaveした後確認してみると、ドキュメントが書き換わっていなくてしばらく頭を悩ませたあと、markModifiedしてみるとうまくいった。
var mongoose = require( 'mongoose' );
var Document = new mongoose.Schema( {
hoge: [ { type: Number } ]
} );
Document はこんな感じだとして、
Document.findOne( query, function( error, doc ) {
doc.hoge[ index ] = huga;
doc.markModified( 'hoge' );
doc.save();
} );
こんな感じ。本来markModifiedするべきなのはプロパティが Schema.Types.Mixed のときのようだが、今回は [ Number ] だったわけで、他にも同様にsaveしている所では問題になっておらず、詳しくは現在調査中といったところ。