You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.6 KiB
76 lines
1.6 KiB
package dao
|
|
|
|
import (
|
|
"context"
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"log"
|
|
"zggsong.cn/sandstone/server/global"
|
|
"zggsong.cn/sandstone/server/models"
|
|
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
)
|
|
|
|
const (
|
|
MONGOURL = "mongodb://admin:123456@localhost:27017"
|
|
DATABASE = "test"
|
|
COLLECTION = "image"
|
|
)
|
|
|
|
func init() {
|
|
clientOptions := options.Client().ApplyURI(MONGOURL)
|
|
|
|
// 连接到MongoDB
|
|
cli, err := mongo.Connect(context.TODO(), clientOptions)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// 检查连接
|
|
err = cli.Ping(context.TODO(), nil)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Println("Connected to MongoDB!")
|
|
|
|
global.GLO_CLIENT = cli
|
|
global.GLO_COLLECTION = cli.Database(DATABASE).Collection(COLLECTION)
|
|
}
|
|
|
|
//GetAttach 添加文档
|
|
func GetAttach(key string) models.Attach {
|
|
var attach models.Attach
|
|
err := global.GLO_COLLECTION.FindOne(context.TODO(), bson.M{"key": key}).Decode(&attach)
|
|
if err != nil {
|
|
log.Fatal("查询出错: ", err)
|
|
}
|
|
return attach
|
|
}
|
|
|
|
//AddAttach 添加文档
|
|
func AddAttach(attach *models.Attach) {
|
|
_, err := global.GLO_COLLECTION.InsertOne(context.TODO(), attach)
|
|
if err != nil {
|
|
log.Fatal("插入出错: ", err)
|
|
}
|
|
}
|
|
|
|
//ListAttach 查询文档
|
|
func ListAttach() []models.Attach {
|
|
var attachs []models.Attach
|
|
cur, err := global.GLO_COLLECTION.Find(context.TODO(), bson.M{})
|
|
if err != nil {
|
|
log.Fatal("查询出错: ", err)
|
|
return attachs
|
|
}
|
|
for cur.Next(context.TODO()) {
|
|
var attach models.Attach
|
|
err := cur.Decode(&attach)
|
|
if err != nil {
|
|
log.Fatal("解码出错: ", err)
|
|
}
|
|
attachs = append(attachs, attach)
|
|
}
|
|
return attachs
|
|
}
|