У меня есть объекты в моей коллекции, которые могут содержать логическую переменную, называемую проверенной, или нет.
Если у него есть эта переменная и она ложна, я хочу установить для нее значение true.
Если у него нет этой переменной, я хочу создать ее как истинную.
query := bson.D{{Key: "email", Value: email}}
update := bson.D{
{Key: "$set",
Value: bson.D{
{Key: "verified", Value: true},
},
},
}
err := col.Collection("objects").FindOneAndUpdate(context.Background(), &query, &update).Err()
Я пытался:
upsert := true
opts := options.FindOneAndUpdateOptions{
Upsert: &upsert,
}
filter := bson.D{{Key: "email", Value: email}}
query := bson.D{
{Key: "$set",
Value: bson.D{
{Key: "verified", Value: true},
},
},
}
err := col.Collection("objects").FindOneAndUpdate(context.Background(), &filter, &query, &opts).Err()
Но он не устанавливает проверенное значение true, если проверенное значение не существует. И даже если он существует и является ложным, он все равно не установлен в значение true.

как насчет использования upsert: true?
вверху:
попробуйте передать upsert:true в findOneAndUpdate()
также, где бы я установить это? Спасибо. неизвестное поле 'upsert' в структурном литерале типа примитив.E
вы можете передать его как необязательный параметр
Я обновил свой ответ, чтобы добавить новую информацию, спасибо
Но весь этот объект уже существует, я просто хочу создать внутри него переменную, если значение не существует, или установить для нее значение true, если значение ложно?