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

首先去官网下载好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)
}

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊的饲养员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值