【问题标题】:extracting nested struct data from mongodb从 mongodb 中提取嵌套结构数据
【发布时间】:2018-04-02 11:31:59
【问题描述】:

有一个结构如下

type Person struct {
   ID    bson.ObjectId `bson:"_id,omitempty"`
   Name  string        `json:"name"`
   Phone string        `json:"phone"`
}

然后想将它嵌套在另一个结构中

type Customer struct {
   ID        bson.ObjectId `bson:"_id,omitempty"`
   StoreName string
   Person    Person        `json:"persons"`
}

实例化为

customer := Customer{bson.NewObjectId(), "Seattle", p1}

并插入 Mongo db(我正在使用 golang 的 mgo 驱动程序)

err = databaseConnection.Insert(&customer)

如何使用嵌套 Person 结构中的参数从数据库中检索客户结构?例如。拉取所有具有名为“John”的 Person 结构的 Customer 结构

我在努力

err = databaseConnection.Find(bson.M{XXXXXXXXX}).All(&resultsB)

但我不知道 XXXXXX 应该是什么。

【问题讨论】:

    标签: mongodb go struct mgo


    【解决方案1】:

    你可以试试这样的:bson.M{"person.name": "john"}

    检查嵌入文档的 mongodb 文档:https://docs.mongodb.com/manual/tutorial/query-embedded-documents/

    【讨论】:

    • 我在 struct type Customer struct { ID bson.ObjectId bson:"_id,omitempty" StoreName string Person Person bson:"persons",json:"persons" } 中添加了 bson 符号,然后在查询中使用它(注意带有 's ') err = dbc.Find(bson.M{"persons.name": "GNXGJKMOFM"}).One(&resultsB) 这行得通
    • 另外我认为您可以从 Person 中删除 ID 字段,通常每个对象都有一个 ID,而嵌套对象没有 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    相关资源
    最近更新 更多