I'm not aware of any feature that can modify the source that is indexed into ES.
The (deprecated) transform
feature could add a new arbitrary field at indexing time, but would not modify the source, which means that when retrieving the results, you'd not get the created field.
I'd suggest you create your own IDs and assign them to your MyDocId
field and don't let ES generate them.
Note that in ES 5, we'll have a new type of node called Ingest node, which will allow to define transformation pipelines, similar to what can be done with Logstash filters. At that point, you'll be able to use the set processor in order to set/create an arbitrary field and achieve what you want:
{
"set": {
"field": "MyDocId",
"value": "_id"
}
}