使用 mGo 处理非结构化 MongoDB 集合
对于 Go 初学者来说,如何使用 mGo 处理非结构化 MongoDB 集合可能会令人困惑。与文档可以分配给数组的 PHP 不同,mGo 需要预定义的结构封送处理来与集合交互。
解决差异
幸运的是,有多种方法可以处理Go with 中的非结构化集合mGo:
利用地图[string]接口{}(例如,bson.M)允许您存储未识别数据的键值对。它提供对键值的直接访问,而不需要预定义的结构。
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
bson.D 是一个维护键排序的切片。它对于保留 MongoDB 索引中定义的键序列特别有用。
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
组合结构体和映射的优点,内联映射字段允许您定义特定字段,同时为未知字段留出空间
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
通过这些技术,您可以轻松地操作 MongoDB 集合中的结构化和非结构化数据。
以上是如何使用 Go 中的 mGo 有效处理非结构化 MongoDB 集合?的详细内容。更多信息请关注PHP中文网其他相关文章!