登录
首页 >  Golang >  Go问答

mgo 填充方法示例

来源:stackoverflow

时间:2024-03-07 18:12:14 487浏览 收藏

本篇文章向大家介绍《mgo 填充方法示例》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我是 GoLang 和 MongoDB 的新手。我试图用 mgo 来理解他们的关系。但是,我无法找到有关如何使用 mgo 从 Go 中的 mongo 获取引用对象的合适示例。我听说过 populate 方法,但不知道 mgo 如何使用它。任何人都可以阐明这一点吗?


解决方案


mongodb 提供了 $lookup 来执行左外连接。下面是一个使用 mgo 的例子。

func TestLookup(t *testing.T) {
    var err error
    uri := "mongodb://localhost/stackoverflow?replicaSet=replset"
    dialInfo, _ := mgo.ParseURL(uri)
    session, _ := mgo.DialWithInfo(dialInfo)
    c := session.DB("stackoverflow").C("users")

    pipeline := `
    [{
        "$lookup": {
            "from": "addresses",
            "localField": "address_id",
            "foreignField": "_id",
            "as": "address"
        }
    }, {
        "$unwind": {
            "path": "$address"
        }
    }, {
        "$project": {
            "_id": 0,
            "name": "$name",
            "address": "$address.address"
        }
    }]
     `
    var v []map[string]interface{}
    var results []bson.M
    json.Unmarshal([]byte(pipeline), &v)
    if err = c.Pipe(v).All(&results); err != nil {
        t.Fatal(err)
    }
    for _, doc := range results {
        t.Log(doc)
    }
}

到这里,我们也就讲完了《mgo 填充方法示例》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>