এই অধ্যায়টি তারপর শুরু হয়েছে যেভাবে Golang মঙ্গোডিবির JSON ডেটা স্ট্রাকচার ব্যক্ত করে। আমরা সবাই জানি, মঙ্গোডিবি ডেটা এবং কুয়েরি কন্ডিশন JSON স্ট্রাকচার ব্যবহার করে বর্ণিত হয়। তাহলে আমরা গো ভাষায় এই ধরনের JSON স্ট্রাকচার কীভাবে ব্যক্ত করতে পারি?

bson প্যাকেজ

মঙ্গোডিবি দ্বারা প্রদত্ত অফিসিয়াল গো ভাষা ড্রাইভারটি একটি bson প্যাকেজ উপস্থাপন করে, যা JSON ডেটা বর্ণনা করার জন্য বেশ কয়েকটি ডেটা স্ট্রাকচার অন্তর্ভুক্ত করে।

bson প্যাকেজ: go.mongodb.org/mongo-driver/bson

bson.D টাইপটি ক্রমাগত কী-মান অ্যারে বর্ণনা করতে ব্যবহৃত হয়, যা সাধারণভাবে মঙ্গোডিবি ক্যুয়েরি এক্সপ্রেশন এবং 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
}