Go微服务: 分布式之通过可靠消息实现最终一致性
package main
import (
"context"
"fmt"
"log"
"os"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
)
func main() {
clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
client, err := mongo.Connect(context.Background(), clientOptions)
if err != nil {
log.Fatal(err)
}
err = client.Ping(context.Background(), readpref.Primary())
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected to MongoDB!")
collection := client.Database("testdb").Collection("messages")
_, err = collection.InsertOne(context.Background(), bson.D{
{"_id", "message1"},
{"text", "Hello, world!"},
})
if err != nil {
log.Fatal(err)
}
filter := bson.D{{"_id", "message1"}}
var result bson.M
err = collection.FindOne(context.Background(), filter).Decode(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
// 确保在退出前关闭数据库连接
if err = client.Disconnect(context.Background()); err != nil {
log.Fatal(err)
}
}
这段代码演示了如何使用Go语言和官方MongoDB驱动器连接到MongoDB实例,并在名为"testdb"的数据库中创建一个名为"messages"的集合,然后插入一条消息并读取这条消息。最后,代码确保在程序结束前关闭数据库连接。这是一个简单的例子,展示了如何开始在Go中使用MongoDB进行开发。
评论已关闭