MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment effectuer addToSet en utilisant le pilote officiel Go ?

$addToSet est une opération de mise à jour, si vous souhaitez mettre à jour un seul document, vous pouvez utiliser la Collection.UpdateOne() méthode.

Utilisez le bson.M et/ou bson.D types pour décrire vos filtres et mettre à jour le document.

Par exemple :

update := bson.M{
    "$addToSet": bson.M{
        "tags": bson.M{"$each": []string{"camera", "electronics", "accessories"}},
    },
}
res, err := c.UpdateOne(ctx, bson.M{"_id": 2}, update)

Voici une application complète et exécutable qui se connecte à un serveur MongoDB et effectue l'opération de mise à jour ci-dessus :

ctx := context.Background()
client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost"))
if err != nil {
    panic(err)
}
defer client.Disconnect(ctx)

c := client.Database("dbname").Collection("inventory")

update := bson.M{
    "$addToSet": bson.M{
        "tags": bson.M{"$each": []string{"camera", "electronics", "accessories"}},
    },
}
res, err := c.UpdateOne(ctx, bson.M{"_id": 2}, update)
if err != nil {
    panic(err)
}
fmt.Printf("%+v", res)