Según la documentación (http://godoc.org/launchpad.net/mgo/v2) puede obtener el ID de su documento "Upserted" si usa el método Upsert.Golang/mgo: ¿Por qué mgo no devuelve la ID del documento insertado?
También hay un método Insert que no proporciona esta funcionalidad.
¿Por qué es eso? ¿Qué sucede si quiero realizar un Insert en lugar de un Upsert? (¿o no sería alguna razón válida para querer hacer eso? Estoy comenzando a preguntarme.)
¿Cómo podría reemplazar "foo": "barra", con una estructura ya he creado? – Acidic
"Si se reinicia la aplicación, el generador de Id de objeto comenzará desde el principio generando los mismos ID una y otra vez, actualizando así los registros existentes en la base de datos". esto se publica en la segunda respuesta, es REALMENTE importante y no se menciona en la respuesta. Creo que debería editar la respuesta agregando esta información para las personas en el futuro. – cjf93
@ cjf93 Esto no es verdad (¿más?). Si observas la implementación de bson.ObjectId, verás que toma en cuenta la hora actual. Esto también se explica aquí: https://github.com/go-mgo/mgo/issues/392 –