我正在嘗試將數據從 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包。
1 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
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)
organization = &models.Organization{} // new value for next iteration
}
return organizations, nil
}
- 1 回答
- 0 關注
- 164 瀏覽
添加回答
舉報
0/150
提交
取消