บทที่ 6: การแทรกเอกสารใน Golang MongoDB

แทรกเอกสาร

result, err := collection.InsertOne(
	context.Background(),  // พารามิเตอร์ Context
	bson.D{   // กำหนดเอกสาร JSON โดยใช้ bson.D
		{"item", "canvas"},
		{"qty", 100},
		{"tags", bson.A{"cotton"}},
		{"size", bson.D{
			{"h", 28},
			{"w", 35.5},
			{"uom", "cm"},
		}},
	})
	
// รับ Unique ID ที่สร้างขึ้นสำหรับเอกสาร
id := result.InsertedID

คำแนะนำ: หากคุณไม่คุ้นเคยกับการแสดงข้อมูล Golang MongoDB โปรดอ้างถึงส่วน "โมเดลข้อมูล Golang MongoDB" ที่นี่ ที่นี่.

เทียบเท่ากับการแทรกเอกสาร JSON ต่อไปนี้:

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

คำขอแบบสอบถามเอกสารที่แทรกล่าสุด

cursor, err := collection.Find(
	context.Background(),
	bson.D{{"item", "canvas"}},  // นิพจน์เทียบเท่า: {"item": "canvas"}
)

การแทรกเป็นเบ็ดเพิ่มขึ้น

result, err := collection.InsertMany(
	context.Background(),
	[]interface{}{   // ส่งอาร์เรย์ของเอกสารเข้าไป แทรกข้อมูลเอกสารทั้งหมด 3 เอกสาร
		bson.D{ // ข้อมูลเอกสาร 1
			{"item", "journal"},
			{"qty", int32(25)},
			{"tags", bson.A{"blank", "red"}},
			{"size", bson.D{
				{"h", 14},
				{"w", 21},
				{"uom", "cm"},
			}},
		},
		bson.D{ // ข้อมูลเอกสาร 2
			{"item", "mat"},
			{"qty", int32(25)},
			{"tags", bson.A{"gray"}},
			{"size", bson.D{
				{"h", 27.9},
				{"w", 35.5},
				{"uom", "cm"},
			}},
		},
		bson.D{ // ข้อมูลเอกสาร 3
			{"item", "mousepad"},
			{"qty", 25},
			{"tags", bson.A{"gel", "blue"}},
			{"size", bson.D{
				{"h", 19},
				{"w", 22.85},
				{"uom", "cm"},
			}},
		},
	})

คำขอแบบสอบถามเอกสารทั้งหมด

cursor, err := collection.Find(
	context.Background(),
	bson.D{}, // ส่งเงื่อนไขคิวรี่เปล่าเข้าไป
)