对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

打开变更流示例

您可以使用 Watch() 方法在 Collection、Database 或 Client 上打开变更流。

提示

参阅“使用示例”,了解如何运行此示例。

以下示例在restaurants collection 上打开 change stream 并打印插入的文档:

coll := client.Database("sample_restaurants").Collection("restaurants") // Creates instructions to watch for insert operationspipeline := mongo.Pipeline{bson.D{{"$match", bson.D{{"operationType", "insert"}}}}} // Creates a change stream that receives change eventscs, 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 eventfor 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)}

查看完全可运行的示例。

运行完整示例后,在不同的 shell 中运行插入文档使用示例。运行插入操作后,应会看到以下输出:

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

重要

完成后请务必关闭终端以关闭此使用示例。

要了解有关打开变更流和处理潜在错误的更多信息,请参阅:

watch()

给本页内容打分