Chương 6: Chèn Tài Liệu trong Golang MongoDB

Chèn Một Tài Liệu

result, err := collection.InsertOne(
	context.Background(),  // Tham số Ngữ cảnh
	bson.D{   // Định nghĩa một tài liệu JSON bằng bson.D
		{"item", "canvas"},
		{"qty", 100},
		{"tags", bson.A{"cotton"}},
		{"size", bson.D{
			{"h", 28},
			{"w", 35.5},
			{"uom", "cm"},
		}},
	})
	
// Lấy ID duy nhất được tạo ra cho tài liệu
id := result.InsertedID

Mẹo: Nếu bạn chưa quen với cách biểu diễn dữ liệu Golang MongoDB, vui lòng tham khảo phần "Mô Hình Dữ Liệu Golang MongoDB" tại đây.

Tương đương với việc chèn tài liệu JSON sau:

{
	"item": "canvas",
	"qty": 100,
	"tags": ["cotton"],
	"size": {
		"h": 28,
		"w": 35.5,
		"uom": "cm"
	}
}

Truy Vấn Tài Liệu Vừa Chèn

cursor, err := collection.Find(
	context.Background(),
	bson.D{{"item", "canvas"}},  // Biểu diễn tương đương: {"item": "canvas"}
)

Chèn Nhiều Tài Liệu Cùng Một Lúc

result, err := collection.InsertMany(
	context.Background(),
	[]interface{}{   // Truyền vào một mảng các tài liệu, chèn ba tài liệu dữ liệu
		bson.D{ // Dữ liệu tài liệu 1
			{"item", "journal"},
			{"qty", int32(25)},
			{"tags", bson.A{"blank", "red"}},
			{"size", bson.D{
				{"h", 14},
				{"w", 21},
				{"uom", "cm"},
			}},
		},
		bson.D{ // Dữ liệu tài liệu 2
			{"item", "mat"},
			{"qty", int32(25)},
			{"tags", bson.A{"gray"}},
			{"size", bson.D{
				{"h", 27.9},
				{"w", 35.5},
				{"uom", "cm"},
			}},
		},
		bson.D{ // Dữ liệu tài liệu 3
			{"item", "mousepad"},
			{"qty", 25},
			{"tags", bson.A{"gel", "blue"}},
			{"size", bson.D{
				{"h", 19},
				{"w", 22.85},
				{"uom", "cm"},
			}},
		},
	})

Truy Vấn Tất Cả Các Tài Liệu

cursor, err := collection.Find(
	context.Background(),
	bson.D{}, // Truyền vào điều kiện truy vấn trống
)