mgo 中的关系

我用 golang 和 mgo 编写了一些简单的程序。我的问题是如何正确处理 mgo 中的关系。


第一种方法:


type User struct {

    Id       bson.ObjectId   `json:"_id,omitempty" bson:"_id,omitempty"`

    Username string          `json:"username" bson:"username"`

    Email    string          `json:"email" bson:"email"`

    Password string          `json:"password" bson:"password"`

    Friends  []User          `json:"friends" bson:"friends"`

}

“朋友”是用户的一部分。我可以 $push 一个指向用户的指针,它工作正常。问题是我只想存储对用户的引用而不是嵌套它:


方法二:


type User struct {

    Id       bson.ObjectId   `json:"_id,omitempty" bson:"_id,omitempty"`

    Username string          `json:"username" bson:"username"`

    Email    string          `json:"email" bson:"email"`

    Password string          `json:"password" bson:"password"`

    Friends  []bson.ObjectId `json:"friends" bson:"friends"`

}

这为我提供了我想要的输出 - 但现在从引用嵌套结构的结构中看不到它。mgo 是否提供了一些机制来处理这个问题?


慕容3067478
浏览 137回答 1
1回答

慕沐林林

mgo 是一个 db 驱动程序库而不是 ORM .. 我要做的是拥有 ids 数组,如第二个示例(未导出,小写),并有一个 Friends() 方法,该方法通过这些 id 查询数据库并返回一个[]用户
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go