Porque você não pode modificar o
_id
campo, uma abordagem melhor é simplesmente remover esse campo do seu mapa
object em vez de convertê-lo em um ObjectId. Então, é isso:
delete map._id;
em vez disso:
map._id = new ObjectID.createFromHexString( map._id);
Se você quiser retornar o objeto atualizado como está tentando com
res.send(map);
, você deve usar findAndModify
em vez de atualizar
para que você tenha acesso ao documento resultante e não apenas ao que foi postado.