Golang中如何在其他go文件中使用MongoDB连接
Golang中如何在其他go文件中使用MongoDB连接 导出此连接并从其他文件中调用它。 我正在使用 go-bongo 这个 ODM。
go-bongo/bongo
用于 MongoDB 的 Go ODM。通过创建 GitHub 帐户为 go-bongo/bongo 的开发做出贡献。
func Conn(){
config := &bongo.Config{
ConnectionString: "mongodb://go:fake@ds117523.mlab.com:17542/golangfake",
Database: "golang",
}
connection, _ := bongo.Connect(config)
}
调用该函数。
func main(){
Conn.connection //类似这样
}
更多关于Golang中如何在其他go文件中使用MongoDB连接的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复
更多关于Golang中如何在其他go文件中使用MongoDB连接的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Go中,你可以通过导出连接变量并在其他文件中导入来共享MongoDB连接。以下是具体实现:
1. 创建数据库连接文件 (db.go):
package db
import (
"github.com/go-bongo/bongo"
)
var Connection *bongo.Connection
func InitDB() error {
config := &bongo.Config{
ConnectionString: "mongodb://go:fake@ds117523.mlab.com:17542/golangfake",
Database: "golang",
}
var err error
Connection, err = bongo.Connect(config)
return err
}
2. 在主文件中初始化并使用连接 (main.go):
package main
import (
"fmt"
"log"
"yourproject/db" // 替换为你的实际模块路径
)
func main() {
// 初始化数据库连接
err := db.InitDB()
if err != nil {
log.Fatal("数据库连接失败:", err)
}
// 使用导出的连接
connection := db.Connection
fmt.Println("MongoDB连接已建立:", connection)
// 示例:使用连接进行操作
// collection := connection.Collection("your_collection")
}
3. 在其他文件中使用连接 (user_service.go):
package services
import (
"github.com/go-bongo/bongo"
"yourproject/db"
)
type User struct {
bongo.DocumentBase `bson:",inline"`
Name string `bson:"name"`
Email string `bson:"email"`
}
func CreateUser(user *User) error {
// 直接使用导出的连接
return db.Connection.Collection("users").Save(user)
}
func FindUserById(id string) (*User, error) {
user := &User{}
err := db.Connection.Collection("users").FindById(bson.ObjectIdHex(id), user)
return user, err
}
4. go.mod 模块配置示例:
module yourproject
go 1.21
require github.com/go-bongo/bongo v0.10.0
关键点说明:
- 连接变量
Connection以大写字母开头,表示导出(public) InitDB()函数初始化全局连接- 其他文件通过导入包路径访问
db.Connection - 确保在程序启动时调用
db.InitDB()一次
这种模式避免了每次操作都创建新连接,提高了性能并确保连接复用。

