Это моя структура.
type Test struct {
Id primitive.ObjectID `json:"id" bson:"_id,omitempty" db:"_id"`
Tasks []Task `json:"tasks" bson:"tasks" db:"tasks"`
}
type Task struct {
Description string `json:"description" bson:"description" db:"description"`
Answer string `json:"answer" bson:"answer" db:"answer"`
Balls int `json:"balls" bson:"balls" db:"balls"`
}
Эта функция работающая с БД. Если answers = true то все работает хорошо. Но если answers = false то сразу же ошибка
(Location31254) Cannot do exclusion on field answer in inclusion projection
func (r *TestsRepo) GetTestByIdRepo(id string, answers bool) (*vpr.Test, *vpr.Error) {
var test vpr.Test
objectId, errID := primitive.ObjectIDFromHex(id)
if errID != nil {
return nil, SetError(http.StatusNotFound, "Is not a valid ObjectID")
}
options := options.FindOne().SetProjection(bson.M{
"tasks": bson.M{
"answer": answers,
"balls": true,
"description": true,
},
})
filter := bson.M{"_id": objectId}
err := r.db.FindOne(nil, filter, options).Decode(&test)
if err != nil {
return nil, SetError(http.StatusInternalServerError, err.Error())
}
return &test, nil
}