यह अध्याय पेश करता है कि Golang कैसे MongoDB के JSON डेटा संरचना को व्यक्त करता है। जैसा कि हम सभी जानते हैं, MongoDB डेटा और पूछताछ शर्तें JSON संरचनाओं का उपयोग करके वर्णित की जाती हैं। तो, फिर गो भाषा में ऐसी JSON संरचनाएँ हम कैसे व्यक्त कर सकते हैं?

bson पैकेज

MongoDB द्वारा प्रदान की जाने वाली आधिकारिक गो भाषा ड्राइवर एक bson पैकेज प्रदान करती है, जिसमें JSON डेटा को वर्णित करने के लिए कई डेटा संरचनाएँ शामिल हैं।

bson पैकेज: go.mongodb.org/mongo-driver/bson

bson.D प्रकार का उपयोग किया जाता है व्यवस्थित कुंजी-मान अर्रे को वर्णित करने के लिए, जो आम तौर पर MongoDB पूछताछ अभिव्यक्तियों और JSON डेटा को व्यक्त करने के लिए प्रयोग किया जाता है।

परिभाषा:

// कुंजी-मान अर्रे
किस्म D [] E

// कुंजी-मान संरचना
किस्म E struct {
	कुंजी   string
	मान interface{}
}

पूछताछ अभिव्यक्ति का उदाहरण:

bson.D{{"qty", bson.D{{"$lt", 30}}}}

समकक्ष अभिव्यक्ति:

{"qty": {"$lt": 30} }

दस्तावेज़ डेटा का उदाहरण:

bson.D{
	{"item", "journal"},
	{"qty", 25},
	{"size", bson.D{
		{"h", 14},
		{"w", 21},
		{"uom", "cm"},
	}},
	{"status", "A"},
}

समकक्ष JSON:

{
	"item": "journal",
	"qty": 25,
	"size": {
		"h": 14,
		"w": 21,
		"uom": "cm"
	},
	"status": "A"
}

bson.A, JSON अर्रों को परिभाषित करने के लिए प्रयोग किया जाता है।

JSON अर्रे की परिभाषा:

किस्म A []interface{}

उदाहरण 1:

bson.A{"bar", "world", 3.14159, bson.D{{"qux", 12345}}}

समकक्ष JSON:

["bar", "world", 3.14159, {"qux": 12345}]

उदाहरण 2:

bson.A{"A", "D"}

समकक्ष JSON:

["A", "D"]

bson.M, कुंजी-मान जोड़ों को वर्णित करने के लिए प्रयोग किया जाता है, bson.D के विपरीत, जो कुंजी के भण्डारण के क्रम के बारे में ध्यान रखता है।

परिभाषा:

किस्म M map[string]interface{}

उदाहरण:

bson.M{"foo": "bar", "hello": "world", "pi": 3.14159}

समकक्ष JSON:

{
	"foo": "bar",
	"hello": "world",
	"pi": 3.14159
}