MongoDB中间件工具mgm入门介绍(二)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 众所周知,MongoDB 是一个通用、基于文档的分布式数据库,非常适合云原生服务的应用场景。上一篇文章已经简单介绍了 MongoDB 数据库的中间件工具 mgm,今天就来聊一聊 mgm 的接口使用方法。

前言

众所周知,MongoDB 是一个通用、基于文档的分布式数据库,非常适合云原生服务的应用场景。上一篇文章已经简单介绍了 MongoDB 数据库的中间件工具 mgm,今天就来聊一聊 mgm 的接口使用方法。

正文

步骤一、导入mgm

导入 mgm 工具包,设置默认配置项,代码参考如下:

import (
"github.com/kamva/mgm/v3""go.mongodb.org/mongo-driver/mongo/options")
funcinit() {
err :=mgm.SetDefaultConfig(nil, "mgm_test", options.Client().ApplyURI("mongodb://root:12345@localhost:27017"))
}

步骤二、创建数据库模型

创建一个人的数据库模型,包括名字name、年龄age,这个过程也非常简单,只需要简单的声明,就能够被数据库识别。代码参考如下:

typePersonstruct {
// DefaultModel adds _id, created_at and updated_at fields to the Modelmgm.DefaultModel`bson:",inline"`Namestring`json:"name" bson:"name"`Ageint`json:"age" bson:"age"`}
funcNewPerson(namestring, ageint) *Person {
return&Person{
Name:  name,
Age: age,
   }
}

步骤三、增删改查操作

增加记录

我们插入一条数据库记录,用户名字是 liuzhen007,年龄是 30,代码参考如下:

// 创建一条记录person :=NewPerson("liuzhen007", 30)
// 写入数据库err :=mgm.Coll(person).Create(person)
iferr!=nil {
fmt.Println("数据库插入失败", err)
}

查找记录

我们查找名字为 liuzhen007 的用户记录,代码参考如下:

// 获取数据库集合person :=&Person{}
coll :=mgm.Coll(person)
// 查找名字为 liuzhen007 的记录_=coll.First(bson.M{"name": "liuzhen007"}, person)

除此之外,还有两种查询方式,比如根据具体的ID进行查询,代码参考如下:

_=coll.FindByID("5e0518aaliuzhen0079410ee3", person)

还有可以直接查询数据库中的第一条记录,代码参考如下:

_=coll.First(bson.M{}, person)

更新记录

我们把数据库中名字为 liuzhen007 的用户的年龄改为 31,但是,这个更新过程首先要查找到对应的数据库记录,这样就用到了我们上面讲到的查询记录接口。代码参考如下:

// 先找到对应的记录_=coll.First(bson.M{"name": "liuzhen007"}, person)
// 然后更新年龄person.Age=31err :=mgm.Coll(person).Update(person)

删除记录

现在,我们来删除一条数据库记录,同样在删除前,我们首先要找到这条记录,这是一个非常符合实际开发流程的操作,如果数据库中没有对应的记录,在进行删除和更新操作时,可能会导致很多意想不到的问题,代码代码如下:

// 先找到对应的记录_=coll.First(bson.M{"name": "liuzhen007"}, person)
// 然后删除记录err :=mgm.Coll(person).Delete(person)

结尾

好了,今天关于 mgm 处理 MongoDB 数据库增删改查操作的方法就介绍完了,当然 mgm 还有很多更加高级的玩法,我们下期再进行介绍。大家好,我是 liuzhen007,欢迎关注,分享更多服务器和数据库的内容知识。



作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
7月前
|
NoSQL 安全 MongoDB
Mongo DB之用户与权限管理、备份与恢复管理以及客户端工具的使用
MongoDB是一款灵活且高性能的文档型数据库,具有可扩展性和强大的查询功能,适用于各种应用场景。
596 1
|
6月前
|
NoSQL MongoDB 索引
开心档-软件开发入门之MongoDB 覆盖索引查询
开心档-软件开发入门之MongoDB 覆盖索引查询
45 0
|
5月前
|
NoSQL 数据可视化 MongoDB
mongoDB入门教程二:推荐一款好用的mongoDB可视化工具Robo 3T
mongoDB入门教程二:推荐一款好用的mongoDB可视化工具Robo 3T
240 1
mongoDB入门教程二:推荐一款好用的mongoDB可视化工具Robo 3T
|
3月前
|
NoSQL Shell MongoDB
MongoDB Shell工具:mongosh的使用
MongoDB Shell工具:mongosh的使用
146 0
|
3月前
|
NoSQL 数据可视化 Linux
第7期 MongoDB GUI可视化客户端管理工具
第7期 MongoDB GUI可视化客户端管理工具
512 0
|
4月前
|
SQL 关系型数据库 中间件
postgresql从入门到精通 - 第35讲:中间件PgBouncer部署
postgresql技术大讲堂,从入门到精通 - 第35讲:中间件PgBouncer部署
172 1
|
5月前
|
NoSQL 数据可视化 MongoDB
mongoDB从入门到实战最全小白教程
mongoDB从入门到实战最全小白教程
256 0
|
6月前
|
NoSQL MongoDB iOS开发
开心档-软件开发入门之MongoDB 覆盖索引查询
开心档-软件开发入门之MongoDB 覆盖索引查询
|
6月前
|
XML 存储 中间件
根据指定关键字搜索指定时间范围内的 SAP CRM 中间件 BDOC 的 ABAP 小工具分享
根据指定关键字搜索指定时间范围内的 SAP CRM 中间件 BDOC 的 ABAP 小工具分享
54 0
|
7月前
|
SQL NoSQL MongoDB
MongoDB数据库入门
MongoDB数据库入门实验。
229 0
MongoDB数据库入门