package db

import (
	"fmt"
	"mtp2_if/config"

	"gopkg.in/mgo.v2"
)

var session *mgo.Session
var mongodb *mgo.Database

// InitMongoDB 初始化连接MongoDB
func InitMongoDB() error {
	// 创建链接
	var err error
	session, err = mgo.Dial(fmt.Sprintf("%s:%d", config.SerCfg.GetMongoDBHostname(), config.SerCfg.GetMongoDBPort()))
	if err != nil {
		return err
	}

	// 选择DB
	mongodb = session.DB(config.SerCfg.GetMongoDBDBName())

	// 登陆
	if err := mongodb.Login(config.SerCfg.GetMongoDBUsername(), config.SerCfg.GetMongoDBPassword()); err != nil {
		return err
	}

	return nil
}

// GetMongoDB 获取MongoDB Database
func GetMongoDB() *mgo.Database {
	return mongodb
}

// CloseMongoDB 关闭MongoDB连接
func CloseMongoDB() {
	session.Close()
}
