123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package db
- import (
- "go.mongodb.org/mongo-driver/mongo"
- "infish.cn/comm"
- )
- type MongoDB struct {
- Client *mongo.Client
- Database *mongo.Database
- Databases map[string]*mongo.Database //所有数据库
- }
- var MongoClient *MongoDB
- func (db *MongoDB) GetCollection(name string) *mongo.Collection {
- return db.Database.Collection(name)
- }
- func (db *MongoDB) GetDbCollection(dbname string, name string) *mongo.Collection {
- if len(dbname) < 1 {
- return db.GetCollection(name)
- }
- return db.GetOrCreateDatabase(dbname).Collection(name)
- }
- func (db *MongoDB) GetOrCreateDatabase(name string) *mongo.Database {
- datab := db.Databases[name]
- if datab == nil {
- datab = db.Client.Database(name)
- db.Databases[name] = datab
- }
- return datab
- }
- func NewMongoDB(bus *comm.NatsBus) *MongoDB {
- inst, err := bus.NewMongoDBFromConfig("box-mongo")
- if err != nil {
- panic(err)
- }
- MongoClient = &MongoDB{Client: inst.Client, Database: inst.Database, Databases: map[string]*mongo.Database{}}
- return MongoClient
- }
|