Docs Menu
Docs Home
/ /

Abrir un ejemplo de flujo de cambios

Puede abrir un flujo de cambios en un Collection, Database o Client utilizando el método Watch().

Tip

Lea el Ejemplos de uso para aprender a ejecutar este ejemplo.

El siguiente ejemplo abre un flujo de cambios en la colección restaurants e imprime los documentos insertados:

coll := client.Database("sample_restaurants").Collection("restaurants")
// Creates instructions to watch for insert operations
pipeline := mongo.Pipeline{bson.D{{"$match", bson.D{{"operationType", "insert"}}}}}
// Creates a change stream that receives change events
cs, err := coll.Watch(context.TODO(), pipeline)
if err != nil {
panic(err)
}
defer cs.Close(context.TODO())
fmt.Println("Waiting For Change Events. Insert something in MongoDB!")
// Prints a message each time the change stream receives an event
for cs.Next(context.TODO()) {
var event bson.M
if err := cs.Decode(&event); err != nil {
panic(err)
}
output, err := json.MarshalIndent(event["fullDocument"], "", " ")
if err != nil {
panic(err)
}
fmt.Printf("%s\n", output)
}
if err := cs.Err(); err != nil {
panic(err)
}

Ver una ejemplo completamente ejecutable.

Después de ejecutar el ejemplo completo, ejecute el ejemplo de uso de Insertar un documento en un shell diferente. Una vez ejecutada la operación de inserción, debería ver el siguiente resultado:

// results truncated
{
"_id": ...,
"name": "8282",
"cuisine": "Korean"
}

Importante

Asegúrese de cerrar este ejemplo de uso una vez que termine cerrando su terminal.

Para obtener más información sobre cómo abrir un flujo de cambios y manejar posibles errores, consulte:

Mirar()

Volver

Operaciones masivas