【发布时间】:2019-11-06 10:43:00
【问题描述】:
我正在尝试将 DB ( Mongo ) 中的数据映射到 go 中的切片,如果我返回简单的 []string,那么一切都可以正常工作,但如果我将类型更改为 []*models.Organization,该代码将返回相同元素的切片。
func (os *OrganizationService) GetAll() ([]*models.Organization, error) {
var organizations []*models.Organization
results := os.MongoClient.Collection("organizations").Find(bson.M{})
organization := &models.Organization{}
for results.Next(organization) {
fmt.Println(organization)
organizations = append(organizations, organization)
}
return organizations, nil
}
我希望输出 [{ Name: "someOrg", ID: "someId" },{ Name: "someOrg2", ID: "someID }, ... ] ,但实际输出是 [{ Name: "someOrg", ID: "someId" },{ Name: "someOrg", ID: "someId" }, ... ]
我正在使用bongo 包。
【问题讨论】:
-
查看github.com/mongodb/mongo-go-driver#usage。您需要将上下文传递给 results.Next(ctx) 并调用
results.Decode(&organzation)和 print/append。 -
嗨,感谢您的回复,但这对我没有帮助,因为我正在使用
bongo连接 mongoDB