Możesz użyć mapy ogólnej, na przykład:
var result map[string]interface{}
err := collection.Find(query).One(&result)
Znajdziesz ludzi używających bson.M
, który jest również mapą o tym samym typie bazowym. Nie ma nic specjalnego w bson.M
, chociaż. To tylko krótka i wygodna nazwa mapy. Możesz stworzyć własną dogodną nazwę lub użyć zwykłej mapy, jak w powyższym przykładzie.
Innym sposobem uzyskania dostępu do dokumentów bez zdefiniowanego schematu jest użycie bson.D
w miejsce powyższego typu mapy. bson.D
jest najbardziej przydatne, gdy kolejność elementów w dokumencie jest istotna lub jeśli chcesz nieco zmniejszyć koszty operacji (mapy są nieco droższe w obsłudze ze względu na ich charakter). bson.D
type to wycinek wartości struktury z parami klucz/wartość. W przeciwieństwie do bson.M
, bson.D
jest specjalny i jest obsługiwany wewnętrznie przez pakiet mgo/bson.