golang gin框架后端连接mongodb相关操作

首先导入需要的包

import (
	"bufio"
	"context"
	"encoding/json"
	"fmt"
	"github.com/gin-gonic/gin"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"go.mongodb.org/mongo-driver/mongo/readpref"
	"log"
	"net/http"
	"os"
	"time"
)

然后,开始连接mongodb数据库,本人是在func main()函数里连接的数据库

	opts := options.Client().ApplyURI("mongodb://localhost:27017")

	// 连接数据库
	client, err := mongo.Connect(context.Background(), opts)
	if err != nil {
		log.Fatal(err)
	}

	// 判断服务是不是可用
	if err = client.Ping(context.Background(), readpref.Primary()); err != nil {
		log.Fatal(err)
	}

遍历该数据库的每个集合,首先获取一个mongodb数据库中的所有集合的名字,再进行逐个连接,再查询数据,即整个过程是一个遍历的过程。

//查询数据这块
db_name := "***"
DatabaseNow:=client.Database(db_name)
filter := bson.M{ "name" : "菜鸟教程"}
AllCollections, _ :=DatabaseNow.ListCollectionNames(context.Background(),bson.D{}) //此处可以获得mongodb中数据库中所有集合的名字,以列表的形式返回
ResultsMap := make(map[string] interface{})
for _, collection := range AllCollections{
	ConnectSet := DatabaseNow.Collection(collection)   //连接数据库里的集合
	cursor, _ := ConnectSet.Find(context.Background(),filter)
	defer cursor.Close(context.Background())

	//创建bson.M类型的数组
	var temp []bson.M

	if err = cursor.All(context.Background(),&temp); err != nil {
		log.Fatal(err)
	}
	
	if len(temp) > 0{
		//一个表单创建一个map
		OneConnectSet := make( []interface{},len(temp))
        
        //做相应的处理即可  		

		ResultsMap[collection]=OneConnectSet 
	}
}

数据经过上面的处理后, ResultsMap的类型是map [string] interface{}  由于我们返回前台时,需要json类型的数据,而golang语言中的map [string] interface{}类型是可以转换成json类型的。所以我用了方法

c.JSON(http.StatusOk,gin.H{"date":&ResultsMap})

注意gin.H{"date":&ResultsMap},由于我们在定义ResultsMap时候,使用了make方法给ResultsMap分类了内存,所以此处返回时,要加上&。这里的c.JSON会把后边的转成json格式的数据进行返回。

学习 Golang 后端开发需要掌握以下几个方面: 1. Golang 语言基础:学习 Golang 的语法、数据类型、控制流、函数、接口等基础知识。 2. Web 开发框架:了解 Golang 常用的 Web 开发框架,如 Gin、Echo、Beego 等。 3. 数据库操作:学习 Golang 如何操作 MySQL、PostgreSQL、MongoDB 等数据库。 4. 缓存技术:了解 Redis 等常用缓存技术的使用和优化。 5. 消息队列:学习消息队列的使用,如 RabbitMQ、Kafka 等。 6. 微服务架构:了解微服务架构的设计和实现方式,如 gRPC、Consul、Zookeeper 等。 7. 安全性:了解如何保证 Golang 后端应用的安全性,包括数据传输的加密、防止 SQL 注入、XSS 攻击等。 具体的学习路线可以按照以下步骤进行: 1. 先学习 Golang 基础知识,可以参考《Go 语言圣经》或《Go 语言编程》等经典教材。 2. 掌握 Web 开发框架,可以从 Gin 或 Echo 开始,掌握基本的 API 开发方式。 3. 学习数据库操作,可以从 MySQL 开始,了解如何使用 Golang 连接数据库、执行 SQL 语句等。 4. 学习缓存技术和消息队列,可以从 Redis 和 RabbitMQ 开始,了解如何使用这些技术提高系统性能和可靠性。 5. 学习微服务架构,可以了解如何使用 gRPC、Consul、Zookeeper 等工具实现微服务架构。 6. 学习安全性,可以了解如何使用 TLS 加密数据传输、如何防止 SQL 注入、XSS 攻击等常见安全问题。 以上是一个简单的学习路线,具体的学习内容和顺序可以根据自己的实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值