GO调用Mongodb数据库的入门示例

入门示例演示mongodb数据库的连接、查询、数据转换和关闭。mongodb和go开发环境配置的相关内容请参见以前博文。

Mongodb数据库

mongodb data

GO编码

test.go

package main

import (
	"context"
	"fmt"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"log"
)

type mongoUser struct {
	Account string
	Password string
}

func main() {
	fmt.Println("start - only test")
	// 客户端连接配置
	clientOptions := options.Client().ApplyURI("mongodb://127.0.0.1:27017")
	// MongoDB client
	client, err := mongo.Connect(context.TODO(), clientOptions)
	if err != nil {
		log.Fatal(err)
	}
	// 检查client连接
	err = client.Ping(context.TODO(), nil)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Connection is ok!")
	// 获取数据集:mongodb数据库中已有数据
	collection := client.Database("mytest").Collection("mycollection")
	// 转换数据集为mongoUser数组
	var results []*mongoUser
	// 通过find创建游标
	cur, err := collection.Find(context.TODO(), bson.D{{}})
	for cur.Next(context.TODO()) {
		// 解码:数据转换
		var u mongoUser
		err := cur.Decode(&u)
		if err != nil {
			log.Fatal(err)
		}
		results = append(results, &u)
	}
	// 关闭游标
	cur.Close(context.TODO())

	// 断开连接
	err = client.Disconnect(context.TODO())
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Connection is closed!")

	// 输出结果集
	var i int
	arrLen := len(results)
	for i = 0; i < arrLen; i++ {
		tmp := results[i]
		fmt.Println(i, tmp.Account, tmp.Password)
	}
}

运行程序

go run

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值