如何使用MongoDB
MongoDB是面向文档的NOSQL数据库。如果您想在Golang项目中使用它,好消息 - MongoDB确实支持Golang!遵循有关将GO和MongoDB连接的教程以及涉及两者的项目的开发项目。
在下面的文章中,我们准确地描述了如何在GO中设置您的蒙古德。另外,我们展示了如何运行数据库中的一些基本CRUD操作。
要遵循此Golang的步骤 - MongoDB教程,您需要在Mac上安装,因此请确保在开始之前拥有它。
为MongoDB安装GO驱动程序
为了将MongoDB与GO一起使用,您需要一个相应的驱动程序。幸运的是,MongoDB提供了该过程的官方文件。让我们一起浏览所有步骤。
免责声明:在这篇文章中,我们仅涵盖GO司机,其他MongoDB司机,请检查正式文档。
要开始使用MongoDB,请在新目录中使用GO MOD初始化项目。这是终端命令:
Mkdir Go-Quickstart CD Go-Quickstart Go Mod Init Go-Quickstart
接下来,使用go get命令添加mongoDB依赖性:
Go go.mongodb.org/mongo-driver/mongo
现在,您准备在MongoDB帐户中创建数据库群集。为此,您需要加入MongoDB地图集。这是一个很好的解决方案,可以在Golang的Mongodb弄湿您的脚,因为它具有自由层,并托管在云中。
连接MongoDB Golang驱动程序所需的操作是创建一个Atlas帐户(您只需通过Google帐户登录),部署免费群集,将IP添加到允许的连接列表中,为已部署的群集创建数据库用户,连接到群集到群集,然后开始使用数据。
从https://account.mongodb.com/account/register上进行注册,仔细阅读以下步骤。如果您遇到任何打ic,这是每个步骤的官方指南。
这些都不需要代码,您应该能够完成地图集接口中的操作。完成此步骤后,我们可以在MongoDB Go驱动程序的帮助下继续进行设置以连接到MongoDB数据库群集。
请注意,当您连接到群集时,需要选择“连接到应用程序” ,然后在下一页上复制连接字符串以添加到应用程序代码:
复制摘要以稍后在代码编辑器中使用。我们希望将代码位保存在Stippetslab中,这是一个专用的应用程序,可以托管代码片段的库。
记住要替换
我们使用App Secret保存我们的MongoDB群集登录凭据:
现在,创建并保存包含您的应用程序的文件中的文件中的文件夹文件夹(您可以为项目文件夹使用其他名称,但请确保您在早期步骤中提供的代码中进行了各自的更改)。
我们正在CodeRunner开发此项目,该项目允许您以25种以上的语言(包括GO)保存,编辑和运行代码。因此,要编写我们的程序,我们使用MongoDB的示例代码从本官方教程中创建了Main.go,然后将文件放入我们的root文件夹中以供项目 /go-quickStart。
这是我们使用的代码:
包装主 进口 ( “语境” “编码/JSON” “ FMT” “日志” “ OS” “ github.com/joho/godotenv” “ go.mongodb.org/mongo-driver/bson” “ go.mongodb.org/mongo-driver/mongo” “ go.mongodb.org/mongo-driver/mongo/options” ) func main(){ 如果err:= godotenv.load(); err!= nil { log.println(“找到的.env文件”) } uri:= os.getenv(“ mongodb_uri”) 如果uri ==” { log.fatal(“您必须设置'mongodb_uri'环境变量。请参阅\ n \ t https://docs.mongodb.com/drivers/go/current/current/usage-usage-examples/#environmples/#environmples-variond-variormable”) } 客户端,err:= mongo.connect(context.todo(),options.client()。appluri(uri)) 如果err!= nil { 恐慌(err) } defer func(){ 如果err:= client.disconnect(context.todo()); err!= nil { 恐慌(err) } }() coll:= client.database(“ sample_mflix”)。集合(“电影”) 标题:=“回到未来” 变量结果BSON.M err = coll.findone(context.todo(),bson.d {{“ title”,title}})。decode(&result) 如果err == mongo.errnodocuments { fmt.printf(“未找到标题%s \ n”,标题) 返回 } 如果err!= nil { 恐慌(err) } jsondata,err:= json.marshalindent(结果,“”,“”) 如果err!= nil { 恐慌(err) } fmt.printf(“%s \ n”,jsondata) }
现在,为了成功运行此代码,您还需要应用程序的根文件夹中的.env文件(在我们的示例中/go-quickStart)。
要创建一个空的.env文件,我们使用了此终端命令:
触摸.env
接下来,我们将连接字符串添加到带有一系列终端命令的.env文件中:
- 在终端执行VIM .env。
- 使用以下方式设置Mongodb_uri的值
mongodb_uri =“ mongodb srv:// <username>:<password>@cluster0.icb48.mongodb.net/myfirstdatabase?retrywrites?retrywrites = true&w =多数 </password></username>
登录后复制登录后复制 - 执行:WQ!命令。
- 在终端中执行CAT .ENV检查您的更改已正确保存。您的.env文件应读取:
mongodb_uri =“ mongodb srv:// <username>:<password>@cluster0.icb48.mongodb.net/myfirstdatabase?retrywrites?retrywrites = true&w =多数 </password></username>
登录后复制登录后复制
现在,您准备使用命令进行MongoDB数据库ping:
去运行main.go
如果您按照ATLAS帐户设置的步骤中的指示加载了示例数据库,则应从该示例数据库中获得包含信息的响应。
在我们的示例中,我们在好莱坞电影中从MongoDB图书馆获得了信息:
MongoDB Crud操作
要在MongoDB执行CRUD操作,您需要导入BSON软件包。由于我们用于上面的GO程序示例的代码(来自MongoDB官方教程),因此您不必手动执行此操作。
但是,如果您正在写自己的东西,那么导入的行是:
“ go.mongodb.org/mongo-driver/bson”
现在,让我们在样本MongoBD数据库中阅读一些数据。
在MongoDB中阅读文档
这是您需要添加到main的代码。go以要求有关房间电影的信息请求:
coll:= client.database(“ sample_mflix”)。集合(“电影”) 变量结果BSON.M err = coll.findone(context.todo(),bson.d {{“ title”,“ the the the the the the the the}})。decode(&result) 如果err!= nil { 如果err == mongo.errnodocuments { //此错误意味着您的查询与任何文档都不匹配。 返回 } 恐慌(err) }
您也可以在此处的官方MongoDB教程中复制示例main.go文件的完整代码。
接下来,让我们转到写作操作。
在MongoDB中创建文档
使用此代码将文档添加到您的集合中:
coll:= client.database(“ insertdb”)。集合(“电影”) doc:= = bson.d {{“ title”,“ 1672”},{“ text”,“这只是一个测试”}}} 结果,err:= coll.insertone(context.todo(),doc) 如果err!= nil { 恐慌(err) }
此页面的官方MongoDB教程中可用的完整示例代码。
运行您的代码并获得确认您的文档已插入:
要检查,请运行查询。您应该回馈示例信息:
另请阅读:
- 与MySQL一起使用
- 将Redis用作数据库
- Mac的最佳开发人员工具
- git客户端Mac
在MongoDB中更新文档
现在,您可以向数据库记录介绍更改。为此,请使用更新工具。
这是一个示例代码:
coll:= client.database(“ insertdb”)。集合(“电影”) id,_:= primitive.ObjectIdFromHex(“ 6205210BC9748A7CEE6AF8CB”) 过滤器:= BSON.D {{“ _ ID”,ID}} 更新:= = bson.d {{“ $ set”,bson.d {{“平均_rtng”,4.5}}}}}}}} 结果,err:= coll.updateone(context.todo(),过滤器,更新) 如果err!= nil { 恐慌(err) }
运行更新的程序代码后的结果应读取:文档更新:1
运行查询进行测试。这是您的结果外观(请注意,我们进行了很多更新以重新检查代码,因此我们的结果包含的信息比以上更新更多的信息):
在MongoDB中删除文档
最后,让我们看看如何从MongoDB数据库中删除文档。
此代码将删除您集合中的第一个匹配标题:
coll:= client.database(“ insertdb”)。集合(“电影”) 过滤器:= bson.d {{“标题”,“您新更新的标题”}} 结果,err:= coll.deleteone(context.todo(),filter) 如果err!= nil { 恐慌(err) }
结论
如您所见,设置MongoDB数据库与Golang一起工作只需几行代码。我们希望本教程对掌握Golang和MongoDB数据库的旅程有所帮助。 Go and MongoDB一起工作很棒,可以成为许多项目中的方便助手,因此我们希望您能够在本指南的帮助下弄清楚如何使用MongoDB。
请注意,MongoDB地图集只允许您创建一个免费的群集,您必须为任何其他群集付费。
对于我们的项目,我们还使用了三个其他应用程序 - CodeRunner,SnippetSlab和Secrets。您可以在Setapp中找到它们,Setapp是一项精心策划的工具服务,可用于日常生产力和自动化日常任务。
发现用于编码,清理Mac,备份文件以及有关SetApp的更多工具。从现在开始的7天免费试用期开始,然后尝试CodeRunner,SnippetSlab,Secrets和数十个工具。
以上是如何使用MongoDB的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Mac 屏幕录制:轻松捕捉窗口、区域及下拉菜单 Mac 系统自带的截图工具 (Command Shift 5) 可以录制全屏或选定区域,但无法单独录制特定应用窗口。这时,就需要更强大的工具来完成任务。本文将介绍几种方法,助您像专业人士一样轻松录制 Mac 窗口。 单独录制应用窗口 录制单个窗口,避免杂乱的桌面背景,能制作出更专业、更突出的图像和视频。以下是一些优秀的屏幕录制应用: 功能对比 Gifox CleanShot X Dropshare 录制特定窗口 ✓ ✓ ✓

在MAC存储中运行低? Macos Sonoma可能会因太多文件而变得迟钝。 本指南向您展示了如何回收宝贵的空间并提高性能。 检查Mac的存储空间 在开始删除之前,请检查您的存储状态:苹果男人

本文回顾了Mac的最佳PDF编辑器,包括AI驱动的选项。 让我们深入研究顶级竞争者。 找到完美的PDF编辑器取决于您的特定需求。 本评论重点介绍了处理常见任务的多功能应用程序

AI驱动的写作助手的市场预计将迅速增长,到2030年将达到约65亿美元。由于AI写作助理将留在这里,因此了解行业中最好的工具很重要。在本文中

您无法避免使用PDF。但是您可以避免的是遇到问题。看起来很棘手,PDF实际上很容易处理 - 当然不是没有帮助。在更改文档时,Nitro PDF PR

本指南向您展示了如何刷新Mac的各个方面,从网页到桌面和消息。 让我们潜入! Mac上的刷新网页 对于快速刷新,最简单的方法是使用键盘快捷键命令R。
