Я храню пользователей и отношусь к ним как к центру вселенной в своем приложении, сейчас я пытаюсь представить концепцию организации, согласно которой пользователи могут быть членами многих организаций, и тогда будут принадлежать определенные настройки и т. Д. c в орг. Функция, которую я пытаюсь создать, заключается в поиске всех организаций, в которых можно найти идентификатор пользователя, а также владельца или одного из участников, и возвращает список организаций, чтобы затем отобразить детали на стороне клиента.
У меня возникла проблема, связанная с обработкой и преобразованием результатов из Mon go Find, а затем с тем, как обработать это и преобразовать в формат, который я могу безопасно вернуть в конце.
В настоящее время я не могу вернуться данные с ошибкой
не могут использовать & org (значение типа * [] * model.Org) в качестве значения * model.Org в операторе возврата
Org Модель
модель пакета
// Org is the structure of a org
type Org struct {
ID string `json:"id" bson:"_id"`
Name string `json:"name" bson:"name"`
Owner string `json:"owner" bson:"owner"`
Members []string `json:"members" bson:"members"`
Token string `json:"token" bson:"-"`
VerifyToken string `json:"verifyToken" bson:"verifyToken"`
}
Функция
// GetOrgByUserID returns a user by his id
func (db *DB) GetOrgByUserID(id string) (*model.Org, error) {
findOptions := options.Find()
var org []*model.Org
cur, err := db.collections.orgs.Find(context.TODO(), bson.D{{"owner", id}}, findOptions)
if err != nil {
return nil, err
}
// Iterate through the cursor
for cur.Next(context.TODO()) {
var elem model.Org
err := cur.Decode(&elem)
if err != nil {
return nil, err
}
org = append(org, &elem)
}
if err := cur.Err(); err != nil {
return nil, err
}
// Close the cursor once finished
cur.Close(context.TODO())
return &org, nil
}