func (c MapCollection) ToStruct(dist interface{}) {
	if err := mapstructure.Decode(c.value, dist); err != nil {
		panic(err)
	}
}
ToStruct turn the collection to the specified struct using mapstructure.
https://github.com/mitchellh/mapstructure
package collection
import (
	"encoding/json"
	"fmt"
	"github.com/mitchellh/mapstructure"
)
type MapCollection struct {
	value map[string]interface{}
	BaseCollection
}
func (c MapCollection) Only(keys []string) Collection {
	var (
		d MapCollection
		m = make(map[string]interface{}, 0)
	)
	for _, k := range keys {
		m[k] = c.value[k]
	}
	d.value = m
	d.length = len(m)
	return d
}