Capítulo 6: Inserción de Documentos en Golang MongoDB

Insertar un Documento

resultado, err := coleccion.InsertOne(
	context.Background(),  // Parámetro de contexto
	bson.D{   // Definir un documento JSON usando bson.D
		{"item", "lienzo"},
		{"qty", 100},
		{"tags", bson.A{"algodón"}},
		{"size", bson.D{
			{"h", 28},
			{"w", 35.5},
			{"uom", "cm"},
		}},
	})
	
// Obtener el ID único generado para el documento
id := resultado.InsertedID

Consejo: Si no estás familiarizado con la representación de datos de Golang MongoDB, consulta la sección "Modelo de Datos de Golang MongoDB" aquí.

Equivalente a insertar el siguiente documento JSON:

{
	"item": "lienzo",
	"qty": 100,
	"tags": ["algodón"],
	"size": {
		"h": 28,
		"w": 35.5,
		"uom": "cm"
	}
}

Consultar el Documento Recién Insertado

cursor, err := coleccion.Find(
	context.Background(),
	bson.D{{"item", "lienzo"}},  // Expresión equivalente: {"item": "lienzo"}
)

Inserción Masiva

resultado, err := coleccion.InsertMany(
	context.Background(),
	[]interface{}{   // Pasar un array de documentos, insertar datos de tres documentos
		bson.D{ // Datos del documento 1
			{"item", "diario"},
			{"qty", int32(25)},
			{"tags", bson.A{"blanco", "rojo"}},
			{"size", bson.D{
				{"h", 14},
				{"w", 21},
				{"uom", "cm"},
			}},
		},
		bson.D{ // Datos del documento 2
			{"item", "tapete"},
			{"qty", int32(25)},
			{"tags", bson.A{"gris"}},
			{"size", bson.D{
				{"h", 27.9},
				{"w", 35.5},
				{"uom", "cm"},
			}},
		},
		bson.D{ // Datos del documento 3
			{"item", "mousepad"},
			{"qty", 25},
			{"tags", bson.A{"gel", "azul"}},
			{"size", bson.D{
				{"h", 19},
				{"w", 22.85},
				{"uom", "cm"},
			}},
		},
	})

Consultar Todos los Documentos

cursor, err := coleccion.Find(
	context.Background(),
	bson.D{}, // Pasar una condición de consulta vacía
)