Compare commits

...

7 Commits

Author SHA1 Message Date
hoteas 3bb47de45a 修复下载插件bug 2022-08-31 19:10:41 +08:00
hoteas c71973850e 修复下载插件bug 2022-08-31 19:10:08 +08:00
hoteas 65f062b860 数据库操作bug 2022-08-31 11:20:58 +08:00
hoteas 7b502fed36 数据库操作bug 2022-08-31 11:14:45 +08:00
hoteas fd6b15bdaf 修正查询bug 2022-08-30 06:21:46 +08:00
hoteas f31bf24ec2 增加mongodb驱动,简单版本 2022-08-30 04:44:37 +08:00
hoteas 30edb4d9fa 增加mongodb驱动,简单版本 2022-08-30 04:05:17 +08:00
3 changed files with 48 additions and 23 deletions
+6 -11
View File
@@ -1016,7 +1016,7 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
if keywordTableStr != "" {
if keywordTableStr == v.GetString("name") {
keyword[table+"."+keywordTableStr+"[~]"] = keywordStr
data[table+"."+keywordTableStr+"[~]"] = keywordStr
}
if keywordTableStr == v.GetString("value") {
@@ -1026,7 +1026,7 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
childIds = append(childIds, cv.GetString("id"))
}
if len(childIds) != 0 {
keyword[v.GetString("link")+".id"] = childIds
data[v.GetString("link")+".id"] = childIds
}
}
continue
@@ -1143,17 +1143,12 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
data[k] = v
}
}
if len(keyword) > 1 {
if data["AND"] != nil {
and := data.GetMap("AND")
for k, v := range keyword {
and[k] = v
}
//data = Map{"AND":Map{"OR": keyword} data, }
if data["OR"] != nil {
data = Map{"AND": data, "OR": keyword}
} else {
data["AND"] = keyword
data["OR"] = keyword
}
}
+2 -2
View File
@@ -18,13 +18,13 @@ func Down(url, path, name string, e ...*Error) bool {
}
out, err := os.Create(path + name)
if err != nil && e[0] != nil {
if err != nil && len(e) != 0 {
e[0].SetError(err)
return false
}
defer out.Close()
resp, err := http.Get(url)
if err != nil && e[0] != nil {
if err != nil && len(e) != 0 {
e[0].SetError(err)
return false
}
+40 -10
View File
@@ -8,7 +8,7 @@ import (
"go.mongodb.org/mongo-driver/mongo/options"
)
type mongoDb struct {
type MongoDb struct {
Client *mongo.Client
Ctx context.Context
DataBase *mongo.Database
@@ -16,12 +16,12 @@ type mongoDb struct {
LastErr error
}
func Init(database, url string) (*mongoDb, error) {
db := mongoDb{}
func GetMongoDb(database, url string) (*MongoDb, error) {
db := MongoDb{}
clientOptions := options.Client().ApplyURI(url)
db.Ctx = context.TODO()
// Connect to MongoDB
// Connect to MongoDb
var err error
db.Client, err = mongo.Connect(db.Ctx, clientOptions)
if err != nil {
@@ -32,7 +32,7 @@ func Init(database, url string) (*mongoDb, error) {
if err != nil {
return nil, err
}
fmt.Println("Connected to MongoDB!")
fmt.Println("Connected to MongoDb!")
//databases, err := db.Client.ListDatabaseNames(db.Ctx, bson.M{})
//if err != nil {
// return nil, err
@@ -43,7 +43,7 @@ func Init(database, url string) (*mongoDb, error) {
}
func (that *mongoDb) Insert(table string, data interface{}) string {
func (that *MongoDb) Insert(table string, data interface{}) string {
collection := that.DataBase.Collection(table)
re, err := collection.InsertOne(that.Ctx, data)
if err != nil {
@@ -53,7 +53,7 @@ func (that *mongoDb) Insert(table string, data interface{}) string {
return ObjToStr(re.InsertedID)
}
func (that *mongoDb) InsertMany(table string, data ...interface{}) Slice {
func (that *MongoDb) InsertMany(table string, data ...interface{}) Slice {
collection := that.DataBase.Collection(table)
re, err := collection.InsertMany(that.Ctx, data)
if err != nil {
@@ -65,7 +65,33 @@ func (that *mongoDb) InsertMany(table string, data ...interface{}) Slice {
}
func (that *mongoDb) Get(table string, where Map) Map {
func (that *MongoDb) Update(table string, data Map, where Map) int64 {
collection := that.DataBase.Collection(table)
re, err := collection.UpdateMany(that.Ctx, where, data)
if err != nil {
that.LastErr = err
return 0
}
return re.ModifiedCount
}
func (that *MongoDb) Delete(table string, where Map) int64 {
collection := that.DataBase.Collection(table)
re, err := collection.DeleteMany(that.Ctx, where)
if err != nil {
that.LastErr = err
return 0
}
return re.DeletedCount
}
func (that *MongoDb) Get(table string, where Map) Map {
results := []Map{}
var cursor *mongo.Cursor
var err error
@@ -86,10 +112,14 @@ func (that *mongoDb) Get(table string, where Map) Map {
that.LastErr = err
return nil
}
return results[0]
if len(results) > 0 {
return results[0]
}
return nil
}
func (that mongoDb) Select(table string, where Map, page, pageRow int64) []Map {
func (that MongoDb) Select(table string, where Map, page, pageRow int64) []Map {
page = (page - 1) * pageRow
if page < 0 {
page = 0