Maison > développement back-end > Golang > Golang et MongoDB - J'ai essayé de mettre à jour le booléen vers mongodb en utilisant golang mais j'ai obtenu l'objet

Golang et MongoDB - J'ai essayé de mettre à jour le booléen vers mongodb en utilisant golang mais j'ai obtenu l'objet

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-02-14 22:40:15
avant
1294 Les gens l'ont consulté

Golang 和 MongoDB - 我尝试使用 golang 将切换布尔值更新为 mongodb,但得到了对象

Contenu de la question

J'ai utilisé React et Nodejs pour implémenter une application de tâches. La fonction de commutation de mise à jour de la base de données Mongodb dans React et Nodejs est la suivante :

const toggleChecked = ({ _id, isChecked }) => {
  TasksCollection.update(_id, {
    $set: {
      isChecked: !isChecked
    }
  })
};
Copier après la connexion

Je souhaite implémenter la fonction bascule dans Golang pour mettre à jour le champ booléen, mais j'ai obtenu un objet, voici le code golang :

func updateOneMovie(movieId string) model.Netflix {
    id, _ := primitive.ObjectIDFromHex(movieId)
    filter := bson.M{"_id": id}
    update := bson.M{"$set": bson.M{"watched": bson.M{"$not": "$watched"}}}
    var updateResult model.Netflix

    result, err := collection.UpdateOne(context.Background(), filter, update)

    err = collection.FindOne(context.Background(), filter).Decode(&updateResult)

    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(result)
    return updateResult
}
Copier après la connexion

Les résultats dans Mongodb sont mis à jour sous forme d'objets au lieu de booléens. Comment puis-je le réparer pour qu'il mette à jour le booléen de la bascule ?

Solution de contournement

Transmettez un seul document (par exemple bson.Mbson.D) comme document de mise à jour et les noms et valeurs des champs seront interprétés tels quels (littéralement).

En utilisant Pipeline d'agrégation avec mises à jour, vous devez transmettre un tableau comme document de mise à jour, ce qui déclenche son interprétation en tant que pipeline d'agrégation. C'est la seule exigence. Le tableau peut être mongo.Pipeline, bson.A[]bson.D []bson.M 甚至 []any,没关系,它必须是 Go 中的数组或切片。这些元素可以是 bson.Mbson.D ou toute autre valeur représentant le document.

Solution la plus simple :

filter := bson.M{"_id": id}
update := []any{
    bson.M{"$set": bson.M{"watched": bson.M{"$not": "$watched"}}}
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal