手把手带你搭建推荐系统
黄鸿波
谷歌开发者专家,知名游戏公司技术专家
3434 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 36 讲
手把手带你搭建推荐系统
15
15
1.0x
00:00/00:00
登录|注册

04|MongoDB:如何安装和使用MongoDB数据库?

你好,我是黄鸿波。
上节课,我们主要了解了数据库的来源和形式,但凡是数据都离不开存储。说到数据库,我们最常用到的就是 MongoDB 和 Redis。
推荐系统中的原始数据一般分成两大类,用户数据和内容数据。这两类数据服务于推荐算法,最终我们会得到用户特征与画像。对于用户画像这类的信息,最好使用字段可变的文档型数据库,比较常见的就是 MongoDB 数据库。
这节课我们就来详细地介绍一下 MongoDB 数据库。看看它是什么、有什么特点、应该如何安装。

什么是 MongoDB 数据库?

MongoDB 是一个开源的基于分布式文件存储的数据库(C++ 语言编写),最初是为 Web 应用提供可扩展的高性能数据存储解决方案。MongoDB 最大的优点是可扩展性强、高效的查询方式和非常出色的安全性。

MongoDB 数据库的特性

由于 MongoDB 开源且分布式,因此,它在可扩展性方面一直是所有 NoSQL 数据库中的佼佼者。MongoDB 数据库可以通过分片数据来提高整个数据库的吞吐量,并且由于它以文档结构来存储数据,所以在编写和使用查询语句时非常容易。
我们这里所说的文档结构,是一种类似于 JSON 类型的 BSON 文档。在实际使用过程中,我们可以把它当作 JSON 的形式使用,因为这二者从使用和长相上来看基本没有区别,而我们在日常开发中也比较喜欢使用 JSON 对象作为传输格式,因此,MongoDB 数据库与程序的对接就变得容易多了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

MongoDB是一个开源的基于分布式文件存储的数据库,具有可扩展性强、高效的查询方式和出色的安全性。它以文档结构存储数据,使用BSON文档进行查询,降低了SQL注入风险。与关系型数据库类似,MongoDB有数据库、集合、文档和字段等概念,但它的灵活性更高。本文详细介绍了MongoDB的安装步骤,包括下载安装包、配置环境变量、创建服务等,并演示了如何在MongoDB中创建数据库、集合,插入数据并进行查询。读者通过本文可以全面了解MongoDB数据库的安装和使用指南,包括其特点、安装方法以及基本操作。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你搭建推荐系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 👂🏻阿难👂🏻
    能不能提个建议,比如这节课,讲了一个工具的安装和一个使用demo,这个内容个人感觉很单薄,其实网上搜索一下就有很多教程,作为学员其实希望了解更多的是:1当前用户在推荐系统中都会和其他模块如何交互,它在推荐架构中的作用是什么? 2为什么选用了mgdb而不是其他的db?有哪些考虑? 3 实际推荐系统中,和当前技术有关的技术“坑”有哪些?老师啥如何解决的。 能围绕以上问题做教学对于学习者来说才有真正的价值。 谢谢

    作者回复: 答:同学你好,首先,感谢你的建议。之所以把安装和demo讲一下是为了照顾不同内容的群体,因为有些学员的基础相对比较薄弱,所以更希望一步步带着走。至于你说的当前模块与其他模块的交互问题,在后面的课程中我们有章节也会着重去讲。 第二个和第三个问题,后面我会尽量注意一下,给大家多拓展一些实际工作中为什么这么选。 最后,再次感谢你的建议。

    2023-04-17归属地:上海
    6
    10
  • 云中君
    mongo安装与使用,放一个链接就可以…建议以后的安装与使用不用重点讲,多讲点推荐核心点

    作者回复: 同学你好,谢谢你的建议,后续安装部分我尽量简化一下。

    2023-04-20归属地:北京
    3
  • 地铁林黛玉
    我感觉这节可以直接略过,docker直接一键安装即可。

    作者回复: 有的时候很多人并不了解docker的使用,所以针对于基础弱的同学,还是讲了一下。

    2023-05-04归属地:北京
    2
  • 贾维斯Echo
    我想知道为什么选用MongoDB? 而不是其他NoSQL数据库

    作者回复: 同学,你好。 画像系统需要存储大量且不同类型的数据,如用户信息、行为数据、设备信息等等,因此需要一个灵活、可扩展、高性能的数据库来支持其数据存储和处理。 MongoDB数据库,属于NOSQL中的文档型数据库,优点就是数据结构要求不严格,表结构可变,这符合画像的需求。 而其他的NoSQL并不一样,比如图数据库利用图结构相关算法进行最短路径寻址,N度关系查找等;key-value的话,主要用于处理大量数据的高访问负载,内容缓存,也用于一些日志系统等等。

    2023-05-08归属地:上海
    2
  • peter
    老师这节课真的很详细,一步一步,每一步都很详细,对于基础薄弱的同学尤其有用,必须赞一个! 另外,请教几个问题: Q1:讲“Field”部分时,有一句话“在 Document 中嵌套 Document 等,因此,它的 Field 类型更加灵活”。应该是Field嵌套,不是Document嵌套吧,也许是笔误。 Q2:MongoDB是分布式,多个节点会有一个中心节点吗? Q3:MongoDB的可扩展性,体现在哪里?是体现在“列”可以任意扩展吗?还是体现在分布式应用时可以任意增加节点?

    作者回复: 同学你好,回答你的几个问题: 1、“在 Document 中嵌套 Document 等,因此,它的 Field 类型更加灵活”,这句话是没有错的,我想表达的是,在这里一个Document也可以作为一个Field,可以理解为json里面包着一层json; 2、在 MongoDB 中,没有一个中心节点,所有节点都是对等的。MongoDB 集群中的每个节点都可以执行相同的任务,并且都能够处理客户端请求。也正是由于无中心节点的架构,MongoDB 能够实现高可用性和可扩展性。 3、这里的拓展是指可以在分布式的部署中任意增加节点。

    2023-04-17归属地:北京
  • 悟尘
    为什么选用了MongoDB而不是其他的db如ES?有哪些考虑? 能否列一个表格做一个对比?做对比后感觉整篇文章就更好了。
    2023-12-11归属地:北京
  • 地铁林黛玉
    这是我的docker安装mongo的命令; docker run -v /Users/apple/data/mongo/data:/data/db -v /Users/apple/data/mongo/backup:/data/backup -v /Users/apple/data/mongo/conf:/data/configdb --name mongod -p 27017:27017 -d mongo --auth 创建用户: db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDa'} ]}) db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDat'} ]})db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyData'} ]}db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDat'} ]})db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDa'} ]}) '} ]}) +++++++ db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]}); +++++++ db.auth('admin', '123456')
    2023-05-04归属地:北京
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部