MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie führt man addToSet mit dem offiziellen Go-Treiber aus?

$addToSet ist eine Aktualisierungsoperation, wenn Sie ein einzelnes Dokument aktualisieren möchten, können Sie Collection.UpdateOne() verwenden Methode.

Verwenden Sie den bson.M und/oder bson.D Typen, um Ihre Filter zu beschreiben und das Dokument zu aktualisieren.

Zum Beispiel:

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

Hier ist eine vollständige, lauffähige App, die eine Verbindung zu einem MongoDB-Server herstellt und den obigen Aktualisierungsvorgang durchführt:

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)