首页 >后端开发 >Golang >如何使用 mgo 在 Go 中查询非结构化 MongoDB 集合?

如何使用 mgo 在 Go 中查询非结构化 MongoDB 集合?

Barbara Streisand
Barbara Streisand原创
2024-12-26 08:44:14564浏览

How to Query Unstructured MongoDB Collections in Go with mgo?

使用 mgo 处理 Go 中的非结构化 MongoDB 集合

使用 mgo 查询 MongoDB 中的集合时,可以预定义将要执行的数据。以结构体形式返回,如提供的 Person 结构体示例所示。但是,在某些情况下,集合中的文档可能具有不同的键集。

如何在 Go / mgo 中处理非结构化集合

有多种方法在 Go / mgo 中处理非结构化集合:

使用map:

通过使用bson.M类型,即map[string]interface{},您可以直接存储文档数据,而无需定义特定的结构体。

var m bson.M
err := collection.Find(nil).One(&m)
check(err)
for key, value := range m {
    fmt.Println(key, value)
}

使用文档切片:

bson.D 是保留排序的切片类型键并提供了处理文档的有效机制。

var d bson.D
err := collection.Find(nil).One(&d)
check(err)
for i, elem := range d {
    fmt.Println(elem.Name, elem.Value)
}

使用内联映射字段:

通过在映射字段中使用 ,inline bson 标志结构体,您可以将使用结构体的便利性与处理未知字段的灵活性结合起来。

type Person struct {
    ID        bson.ObjectId `bson:"_id,omitempty"`
    Name      string
    Phone     string
    Extra     bson.M `bson:",inline"`
}

以上是如何使用 mgo 在 Go 中查询非结构化 MongoDB 集合?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn