目录
为MongoDB安装GO驱动程序
MongoDB Crud操作
在MongoDB中阅读文档
在MongoDB中创建文档
在MongoDB中更新文档
在MongoDB中删除文档
结论
首页 系统教程 苹果 如何使用MongoDB

如何使用MongoDB

Apr 12, 2025 am 09:27 AM

如何使用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添加到允许的连接列表中,为已部署的群集创建数据库用户,连接到群集到群集,然后开始使用数据。

如何使用MongoDB

从https://account.mongodb.com/account/register上进行注册,仔细阅读以下步骤。如果您遇到任何打ic,这是每个步骤的官方指南。

这些都不需要代码,您应该能够完成地图集接口中的操作。完成此步骤后,我们可以在MongoDB Go驱动程序的帮助下继续进行设置以连接到MongoDB数据库群集。

请注意,当您连接到群集时,需要选择“连接到应用程序” ,然后在下一页上复制连接字符串以添加到应用程序代码:

如何使用MongoDB

复制摘要以稍后在代码编辑器中使用。我们希望将代码位保存在Stippetslab中,这是一个专用的应用程序,可以托管代码片段的库。

如何使用MongoDB

记住要替换在摘要中,带有您在Atlas注册时创建的数据库密码。我们建议在安全位置保存您的登录凭据。

我们使用App Secret保存我们的MongoDB群集登录凭据:

如何使用MongoDB

现在,创建并保存包含您的应用程序的文件中的文件中的文件夹文件夹(您可以为项目文件夹使用其他名称,但请确保您在早期步骤中提供的代码中进行了各自的更改)。

我们正在CodeRunner开发此项目,该项目允许您以25种以上的语言(包括GO)保存,编辑和运行代码。因此,要编写我们的程序,我们使用MongoDB的示例代码从本官方教程中创建了Main.go,然后将文件放入我们的root文件夹中以供项目 /go-quickStart。

如何使用MongoDB

这是我们使用的代码:

包装主
进口 (
    “语境”
    “编码/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文件中:

  1. 在终端执行VIM .env。
  2. 使用以下方式设置Mongodb_uri的值
    mongodb_uri =“ mongodb srv:// <username>:<password>@cluster0.icb48.mongodb.net/myfirstdatabase?retrywrites?retrywrites = true&w =多数  </password></username>
    登录后复制
    登录后复制
  3. 执行:WQ!命令。
  4. 在终端中执行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

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教程中可用的完整示例代码。

运行您的代码并获得确认您的文档已插入:

如何使用MongoDB

要检查,请运行查询。您应该回馈示例信息:

如何使用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中删除文档

最后,让我们看看如何从MongoDB数据库中删除文档。

此代码将删除您集合中的第一个匹配标题:

coll:= client.database(“ insertdb”)。集合(“电影”)
过滤器:= bson.d {{“标题”,“您新更新的标题”}}
结果,err:= coll.deleteone(context.todo(),filter)
如果err!= nil {
    恐慌(err)
}
登录后复制

如何使用MongoDB

结论

如您所见,设置MongoDB数据库与Golang一起工作只需几行代码。我们希望本教程对掌握Golang和MongoDB数据库的旅程有所帮助。 Go and MongoDB一起工作很棒,可以成为许多项目中的方便助手,因此我们希望您能够在本指南的帮助下弄清楚如何使用MongoDB。

请注意,MongoDB地图集只允许您创建一个免费的群集,您必须为任何其他群集付费。

对于我们的项目,我们还使用了三个其他应用程序 - CodeRunner,SnippetSlab和Secrets。您可以在Setapp中找到它们,Setapp是一项精心策划的工具服务,可用于日常生产力和自动化日常任务。

发现用于编码,清理Mac,备份文件以及有关SetApp的更多工具。从现在开始的7天免费试用期开始,然后尝试CodeRunner,SnippetSlab,Secrets和数十个工具。

以上是如何使用MongoDB的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何将短信从iPhone导出到PDF 如何将短信从iPhone导出到PDF Apr 02, 2025 am 09:06 AM

浮动屏幕记录:如何在Mac上捕获特定的应用程序窗口 浮动屏幕记录:如何在Mac上捕获特定的应用程序窗口 Mar 28, 2025 am 09:16 AM

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

如何释放Mac Sonoma上的空间?如何清洁MacOS 14上的存储空间? 如何释放Mac Sonoma上的空间?如何清洁MacOS 14上的存储空间? Mar 16, 2025 pm 12:16 PM

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

Mac的最佳PDF编辑器 - 免费和付费工具 Mac的最佳PDF编辑器 - 免费和付费工具 Mar 16, 2025 am 11:38 AM

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

Mac,iOS和Web的前9名AI写作助理 Mac,iOS和Web的前9名AI写作助理 Mar 23, 2025 am 10:44 AM

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

用Nitro PDF Pro更改不变的PDF 用Nitro PDF Pro更改不变的PDF Mar 22, 2025 am 11:14 AM

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

如何在Mac上刷新-SetApp 如何在Mac上刷新-SetApp Mar 18, 2025 am 11:47 AM

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

See all articles