Bab ini memperkenalkan bagaimana Golang mengekspresikan struktur data JSON dari MongoDB. Seperti yang kita semua tahu, data MongoDB dan kondisi query dijelaskan menggunakan struktur JSON. Jadi, bagaimana kita bisa mengekspresikan struktur JSON tersebut dalam bahasa Go?
Paket bson
Driver bahasa Go resmi yang disediakan oleh MongoDB menawarkan paket bson, yang mencakup beberapa struktur data untuk menjelaskan data JSON.
Paket bson:
go.mongodb.org/mongo-driver/bson
Tipe bson.D digunakan untuk menggambarkan array pasangan kunci-nilai yang terurut, yang umumnya digunakan untuk mengekspresikan ekspresi query MongoDB dan data JSON.
Definisi:
// Array pasangan kunci-nilai
type D [] E
// Struktur pasangan kunci-nilai
type E struct {
Key string
Value interface{}
}
Contoh ekspresi query:
bson.D{{"qty", bson.D{{"$lt", 30}}}}
Ekspresi setara:
{"qty": {"$lt": 30} }
Contoh data dokumen:
bson.D{
{"item", "journal"},
{"qty", 25},
{"size", bson.D{
{"h", 14},
{"w", 21},
{"uom", "cm"},
}},
{"status", "A"},
}
JSON setara:
{
"item": "journal",
"qty": 25,
"size": {
"h": 14,
"w": 21,
"uom": "cm"
},
"status": "A"
}
Tipe bson.A digunakan untuk mendefinisikan array JSON.
Definisi array JSON:
type A []interface{}
Contoh 1:
bson.A{"bar", "world", 3.14159, bson.D{{"qux", 12345}}}
JSON setara:
["bar", "world", 3.14159, {"qux": 12345}]
Contoh 2:
bson.A{"A", "D"}
JSON setara:
["A", "D"]
Tipe bson.M digunakan untuk menjelaskan pasangan kunci-nilai tidak terurut, berbeda dengan bson.D, yang memperhatikan urutan penyimpanan kunci.
Definisi:
type M map[string]interface{}
Contoh:
bson.M{"foo": "bar", "hello": "world", "pi": 3.14159}
JSON setara:
{
"foo": "bar",
"hello": "world",
"pi": 3.14159
}