【问题标题】:Get inside struct values获取内部结构值
【发布时间】:2018-12-29 12:12:51
【问题描述】:

在这个example 中,我将Sql driver 更改为mgo,我有些困惑。在这里,如何访问内部结构值?像嵌套结构。

我有两个结构,

作者

type Author struct {
    ID        string `bson:"id"`
    Name      string `bson:"name"`
    Timestamp time.Time
}

文章

type Article struct {
    ID        bson.ObjectId `bson:"_id,omitempty"`
    Title     string        `bson:"title"`
    Content   string        `bson:"content"`
    Author    Author        `bson:"inline"`
    Timestamp time.Time
}

功能

func (m *mgoArticleRepository) FindAll() ([]*models.Article, error) {
    result := make([]*models.Article, 0)
    sessionCopy := m.Conn.Copy()
    defer sessionCopy.Close()
    collection := sessionCopy.DB(DBNAME).C(COLLECTION)
    err := collection.Find(nil).All(&result)
    return result, err
}

输出

作者对象返回空(我在 mongoDB 中有数据)

[
    {
        "ID":"5b4f27c187a9e40828422cca",
        "Title":"Makan Ayam",
        "Content":"Sample values One",
        "Author":{
            "ID":"",
            "Name":"",
            "Timestamp":"0001-01-01T00:00:00Z"
        },
        "Timestamp":"0001-01-01T00:00:00Z"
    },
    {
        "ID":"5b4f27c187a9e40828422ccb",
        "Title":"Makan Ikan",
        "Content":"Sample values Two",
        "Author":{
            "ID":"",
            "Name":"",
            "Timestamp":"0001-01-01T00:00:00Z"
        },
        "Timestamp":"0001-01-01T00:00:00Z"
    },
    {
        "ID":"5b4f27c187a9e40828422ccc",
        "Title":"Makan Sayur",
        "Content":"Sample values Three",
        "Author":{
            "ID":"",
            "Name":"",
            "Timestamp":"0001-01-01T00:00:00Z"
        },
        "Timestamp":"0001-01-01T00:00:00Z"
    },
    {
        "ID":"5b4f27c187a9e40828422ccd",
        "Title":"Makan Daging",
        "Content":"Sample values Four",
        "Author":{
            "ID":"",
            "Name":"",
            "Timestamp":"0001-01-01T00:00:00Z"
        },
        "Timestamp":"0001-01-01T00:00:00Z"
    },
    {
        "ID":"5b4f27c187a9e40828422cce",
        "Title":"Makan Indomie",
        "Content":"Sample values Five",
        "Author":{
            "ID":"",
            "Name":"",
            "Timestamp":"0001-01-01T00:00:00Z"
        },
        "Timestamp":"0001-01-01T00:00:00Z"
    },
    {
        "ID":"5b4f27c187a9e40828422ccf",
        "Title":"Makan Soto",
        "Content":"Sample values Six",
        "Author":{
            "ID":"",
            "Name":"",
            "Timestamp":"0001-01-01T00:00:00Z"
        },
        "Timestamp":"0001-01-01T00:00:00Z"
    }
  ]

在这里,我怎样才能为两个结构建立关系?谢谢。

【问题讨论】:

  • 如果您将 MongoDB 视为 RDBMS 的替代品,您将会遇到问题。使用现有模型并在 MongoDB 中使用它们很有可能会失败。在 SQL 中,您尝试根据相对严格的建模找出如何回答您的问题。对于一般的 NoSQL,尤其是 MongoDB,您可以对数据进行建模,以便以最有效的方式回答您的问题。微妙但重要的区别。
  • 我们能否提供您存储数据的样本,而不仅仅是调用返回的数据?

标签: go mgo


【解决方案1】:

换行:

Author Author `bson:"inline"

Author Author `bson:"Author"`

【讨论】:

  • 它将返回相同的输出。
  • 尝试map[string]interface{},而不是作者类型。让我们确保解组是这里的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多