Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Abrir un ejemplo de "]Stream de cambios"

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

Tip

Lea la Ejemplos de uso para aprender cómo 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 un ejemplo completamente ejecutable.

Después de ejecutar el ejemplo completo, ejecuta el Ejemplo de uso de Insertar un documento en una shell diferente. Una vez que ejecutes la operación de inserción, deberías ver la siguiente salida:

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

Importante

Asegúrate de cerrar este ejemplo de uso una vez que hayas terminado cerrando tu terminal.

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

Watch()

Volver

Operaciones masivas