go语言之MongoDB的插入查找更新和删除

119 阅读1分钟

首先去官网下载好MongDB(这个是直接的下载连接哦~)后,直接打开 bin 文件目录里的 mongo.exe 就打开了 MongoDB。操作是在控制台中的。

具体操作,其实只要掌握一下这两句就可以了:

use 库名

代表使用这个库

db.集合名(相当于表).find()

 查询这个集合中的数据

目录

1.初始化连接

2.插入单个数据

3.插入多个数据

4.查询

5.更新

6.删除


1.初始化连接

var client *mongo.Client

func initDb()  {
	//设置客户端连接配置
	uri := options.Client().ApplyURI("mongodb://localhost:27017")
	//连接到MongoDB
	connect, err3 := mongo.Connect(context.TODO(), uri)
	if err3!=nil {
		log.Fatal(err3)
	}else {
		fmt.Println(connect)
	}
	//检验连接
	err2:= connect.Ping(context.TODO(), nil)
	if err2!=nil {
		log.Fatal(err2)
	}else {
		fmt.Println("连接成功!")
	}
	client=connect
}

2.插入单个数据

func mongoinsert()  {
	initDb()
	s1:=Students{
		Name: "yjy",
		Age: 21,
	}
	//打开数据库并且打开Syudents的这个Collection集合
	collection:= client.Database("golang_db").Collection("Students")
	one, err := collection.InsertOne(context.TODO(), s1)
	if err!=nil {
		fmt.Println(err)
	}else {
		fmt.Println(one.InsertedID)
	}
}

3.插入多个数据

func insertMany()  {
	initDb()
	c:= client.Database("golang_db").Collection("Students")
	s1:=Students{
		Name: "kitty",
		Age: 21,
	}
	s2:=Students{
		Name: "zqy",
		Age: 27,
	}
	stus:=[]interface{}{s1,s2}
	many, err := c.InsertMany(context.TODO(), stus)
	if err!=nil {
		fmt.Println(err)
	}else {
		fmt.Println(many.InsertedIDs)
	}
}

注意要用到 interface{} 切片插入

4.查询

func find()  {
	initDb()
	defer client.Disconnect(context.TODO())
	c:= client.Database("golang_db").Collection("Students")
	cur, err := c.Find(context.TODO(), bson.D{{"name","zqy"}})
	//bson.D{}里面可写可不写,写了就是条件,不写就是查找全部
	if err!=nil {
		log.Fatal(err)
	}
	defer cur.Close(context.TODO())
	for cur.Next(context.TODO()) {
		var result bson.D
		cur.Decode(&result)
		fmt.Println(result.Map())
		fmt.Println(result)
	}
}

5.更新

func mongoupdate()  {
	initDb()
	c:= client.Database("golang_db").Collection("Students")
	//将数据要改成
	d := bson.D{{"$set", bson.D{{"name", "qxx"}, {"age", "28"}}}}
	//要改的原数据
	many, err := c.UpdateMany(context.TODO(), bson.D{{"name", "kitty"}}, d)
	if err!=nil {
		log.Fatal(err)
	}
	//打印改变了多少
	fmt.Println(many.ModifiedCount)
}

6.删除

func del()  {
	initDb()
	c:= client.Database("golang_db").Collection("Students")
	many, err := c.DeleteMany(context.TODO(), bson.D{{"name", "qxx"}})
	if err!=nil {
		log.Fatal(err)
	}
	fmt.Println(many.DeletedCount)
}

其实大部分都是一样的,只是调用的方法不同罢了。