Capítulo 6: Inserção de Documentos no MongoDB usando Golang

Inserir um Documento

resultado, err := colecao.InsertOne(
	context.Background(),  // Parâmetro de contexto
	bson.D{   // Definir um documento JSON usando bson.D
		{"item", "tela"},
		{"qty", 100},
		{"tags", bson.A{"algodão"}},
		{"size", bson.D{
			{"h", 28},
			{"w", 35.5},
			{"uom", "cm"},
		}},
	})
	
// Obter o ID único gerado para o documento
id := resultado.InsertedID

Dica: Se você não estiver familiarizado com a representação de dados Golang MongoDB, consulte a seção "Modelo de Dados Golang MongoDB" aqui.

Equivalente à inserção do seguinte documento JSON:

{
	"item": "tela",
	"qty": 100,
	"tags": ["algodão"],
	"size": {
		"h": 28,
		"w": 35.5,
		"uom": "cm"
	}
}

Consultar o Novo Documento Inserido

cursor, err := colecao.Find(
	context.Background(),
	bson.D{{"item", "tela"}},  // Expressão equivalente: {"item": "tela"}
)

Inserção em Massa

resultado, err := colecao.InsertMany(
	context.Background(),
	[]interface{}{   // Passar em uma matriz de documentos, inserir dados de três documentos
		bson.D{ // Dados do documento 1
			{"item", "diário"},
			{"qty", int32(25)},
			{"tags", bson.A{"em branco", "vermelho"}},
			{"size", bson.D{
				{"h", 14},
				{"w", 21},
				{"uom", "cm"},
			}},
		},
		bson.D{ // Dados do documento 2
			{"item", "tapete"},
			{"qty", int32(25)},
			{"tags", bson.A{"cinza"}},
			{"size", bson.D{
				{"h", 27.9},
				{"w", 35.5},
				{"uom", "cm"},
			}},
		},
		bson.D{ // Dados do documento 3
			{"item", "mousepad"},
			{"qty", 25},
			{"tags", bson.A{"gel", "azul"}},
			{"size", bson.D{
				{"h", 19},
				{"w", 22.85},
				{"uom", "cm"},
			}},
		},
	})

Consultar Todos os Documentos

cursor, err := colecao.Find(
	context.Background(),
	bson.D{}, // Passar em uma condição de consulta vazia
)