findOne()とfindOneAndUpdate()とでは、コールバックに返されるdocの階層が違うので気を付けよう

function(err, doc){
doc; //←findOne()の場合はこれがドキュメントのコピー。
doc.value; // ←findOneAndUpdate()で、updateされた方のドキュメントを受け取るように指定した場合はこれがドキュメントのコピー。docではないので、はまった。
}
そゆこと。簡単にはそゆこと。