当前播放: 06 | MongoDB基本操作
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:MongoDB再入门 (12讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 认识文档数据库MongoDB
免费
04 | MongoDB特色及优势
免费
05 | 实验:安装MongoDB
免费
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
第二章:从熟练到精通的开发之路 (12讲)
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
06 | MongoDB基本操作

06 | MongoDB基本操作

唐建法(TJ)
Tapdata CTO、MongoDB中文社区主席、前MongoDB大中华区首席架构师
47讲 约500分钟3451
单独订阅¥129
2人成团¥99
1
登录 后留言

精选留言(16)

  • Geek_862694
    这一节跟着唐老师学会了删库跑路.删库是掌握了,跑路还不是很熟悉具体流程,懂流程的可以指点一下
    2019-12-10
    5
  • 旺旺
    这个MongoDB删除collection的时候,占用的存储空间也是立即就释放了的吗?
    2019-11-13
    7
    2
  • 长期规划
    老师,看3.6的官方文档,删除是用deleteOne, deleteMany,这跟remove有什么区分吗

    作者回复: remove是mongo shell下的命令。deleteOne deleteMany是程序语言下的API。做的是类似的事情。

    2019-12-02
    1
  • 旺旺
    投影(projection)里面是不是可以对某个属性的表示形式做变换呢?比如将一个整数属性(保存的为1970年1月1日开始的毫秒数)转为日期格式表示?

    作者回复: 数据格式转换是4.0才开始支持的功能,本质上所有的转换都可以用`$convert`完成,但是转换为不同的数据类型时又有不同的简化版本。例如`$toInt`,`$toBool`,`$toDate`等。以下以使用最`$toDate`为例举例说明使用方式:

    ```javascript
    // 测试数据
    db.convertTest.insertMany([{
        date: new Date().getTime()
    }, {
        date: new Date().getTime() - 3600000
    }, {
        date: new Date().getTime() - 7200000
    }]);
    ```
    在`$project`中直接使用`$toDate`即可将epoch时间转换为日期类型:

    ```javascript
    db.convertTest.aggregate([{
        $project: {
            date: {
                $toDate: "$date"
            }
        }
    }]);
    ```

    参考:

    - `$convert`: https://docs.mongodb.com/manual/reference/operator/aggregation/convert/
    - `$toInt`: https://docs.mongodb.com/manual/reference/operator/aggregation/toInt/
    - `$toBool`: https://docs.mongodb.com/manual/reference/operator/aggregation/toBool/
    - `$toDate`: https://docs.mongodb.com/manual/reference/operator/aggregation/toDate/

    2019-11-20
    1
    1
  • firek
    老师,mongodb删除了数据、表、数据库是没法恢复的么,有没有类似mysql有个日志记录的机制去回滚的?
    2019-12-22
  • CN丶jack
    老师,请问下,mongoDB适合做车辆GPS存储数据库吗?如果十万辆车,每辆车每十秒上传一次GPS信息(时间,坐标,速度,方向,位置等),这种量级的数据.MongoDB能稳定支持吗?还要考虑车辆实时监控,历史时间段轨迹查看等应用
    2019-12-21
  • Keep
    老师请问一下:mongodb在查询的时候什么情况下会使用到索引?整体查询性能怎么样?
    2019-12-16
  • 丁丁历险记
    终于学会了跑路大法。
    2019-12-10
  • 于先生
    唐老师您好,我在使用Robo 3T这个工具的过程中,对集合右键执行了 Drup Collection,执行之后,show collections 已经看不到那个集合,但是此前占用的存储空间没有变化。 请问下这个集合是否还存在? 如果存在是否可以恢复? 如果不存在,如何释放存储空间?
    2019-12-07
  • ★遠飛★
    最近遇到一个怪事,请教一下老师。最近我在六台主机上部署了一备二,三个分片的mongo分布式,开启了认证机制!在内网中完成了部署并能正常使用,但是当把内网网线拔掉,接上生产网络后,访问mongo却出现了认证失败错误!?为什么?全部重新启动mongo可恢复。另外分布式环境中,mongo如何做开机自启?

    作者回复: 关于1)比较难以判断实际情况。
    2)

    首先要把mongodb安装成service,参考Redhat的安装:

    https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

    然后用chkconfig命令启用开机自启动,这里有教程:

    https://blog.csdn.net/u013554213/article/details/78792686

    分布式环境下也是一样。如果你是说希望有那种中央化的管控,那你可以使用OpsManager,可以通过GUI对全部节点进行起停控制,并且是会在服务器宕机时候自动重启服务。

    2019-12-02
  • walker
    老师能详细介绍一下 MongoDB 4.2 的新特性通配符索引(Wildcard Indexes)吗?
    2019-11-23
  • 旺旺
    对于传统SQL语句中类似update user set a=b 这种语句,在v4.2.1支持如下的写法:db.members.updateMany({},[{$set: {misc1: "$misc2"}}])来将一个属性中的值设到另一个属性中,在v4.0版本中则不支持。
    2019-11-21
  • 黎波拉小建
    老师有个疑问说是MongoDB用的是B树来构建索引,那就像问下类似lt gt这种操作是基于B树的类似前中后序遍历来做范围查询么。
    2019-11-21
  • 旺旺
    db.fruit.find( { "from" : {country: "China"} } ),这个到底是在查什么呢?查一个json对象字段from的值是“{country: "China"}”吗?好像不是这样的。

    作者回复: 这个表示查找一个JSON文档,这个文档有一个字段叫做 from, 并且 from字段的内容就是 {country: "China"} ,不多也不少。

    2019-11-20
    1
  • 肖大保健
    > db.orders.find({"orderLines":{$elemMatch:{"sku":"1400","qty":62}}},{"_id":0,"orderLines.sku":1,"orderLines.qty":1})
    { "orderLines" : [ { "sku" : "9569", "qty" : 75 }, { "sku" : "1400", "qty" : 62 }, { "sku" : "6156", "qty" : 43 }, { "sku" : "5983", "qty" : 36 }, { "sku" : "9183", "qty" : 34 }, { "sku" : "1145", "qty" : 93 }, { "sku" : "2056", "qty" : 19 }, { "sku" : "8706", "qty" : 1 }, { "sku" : "6951", "qty" : 10 }, { "sku" : "5129", "qty" : 58 }, { "sku" : "2069", "qty" : 96 } ] }
    >
    >
    是我语法有问题吗,用orders库,后面带了条件以后查询到的结果不匹配呢

    作者回复: 你是不是要这个:

    db.orders.find({
     "orderLines": {
      $elemMatch: {
       "sku": "1400",
       "qty": 62
      }
     }
    }, {
     "_id": 0,
     "orderLines.$": 1
    })

    2019-11-18
  • jeffery
    mongo后天怎么启动

    作者回复: 请把问题描述清楚。

    2019-11-16
    1
收起评论
看过的人还看
后端技术面试38讲

李智慧  同程艺龙交通首席架构师,前Intel&阿里架构师,《大型网站技术架构》作者

38讲 | 3711 人已学习

拼团 ¥79 原价 ¥99
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 43741 人已学习

拼团 ¥69 原价 ¥99
Elasticsearch核心技术与实战

阮一鸣  eBay Pronto平台技术负责人

100讲 | 16796 人已学习

拼团 ¥89 原价 ¥129
设计模式之美

王争  前Google工程师,《数据结构与算法之美》专栏作者

100讲 | 18080 人已学习

拼团 ¥129 原价 ¥199