MongoDB 高手课
唐建法(TJ)
Tapdata CTO、MongoDB 中文社区主席、前 MongoDB 大中华区首席架构师
19351 人已学习
新⼈⾸单¥59
课程目录
已完结/共 53 讲
MongoDB 高手课
登录|注册
留言
31
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 06 | MongoDB基本操作
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 认识文档数据库MongoDB
04 | MongoDB特色及优势
05 | 实验:安装MongoDB
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
25 | 分片集群机制及原理
26 | 分片集群设计
27 | 实验:分片集群搭建及扩容
28 | MongoDB监控最佳实践
29 | MongoDB备份与恢复
30 | 备份与恢复操作
31 | MongoDB安全架构
32 | MongoDB安全加固实践
33 | MongoDB索引机制(一)
34 | MongoDB索引机制(二)
35 | MongoDB读写性能机制
36 | 性能诊断工具
37 | 高级集群设计:两地三中心
38 | 实验:搭建两地三中心集群
39 | 高级集群设计:全球多写
40 | MongoDB上线及升级
41 | MongoDB应用场景及选型
42 | MongoDB典型案例(一)
43 | MongoDB典型案例(二)
44 | 关系型数据库迁移
45 | 数据库迁移方式及工具
46 | Oracle迁移实战
47 | MongoDB + Spark实时大数据
48 | MongoDB + Spark连接实战
49 | MongoDB SQL套接件
50 | MongoDB与微服务
51 | MongoDB与数据中台
52 | MongoDB数据中台案例
53 | 结果测试&结束语
登录 后留言

全部留言(31)

  • 最新
  • 精选
长期规划
老师,看3.6的官方文档,删除是用deleteOne, deleteMany,这跟remove有什么区分吗

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

2019-12-02
10
~尘曦~
db.getCollection().find 什么意思啊?getCollection(表名)

作者回复: db.getCollection("customer") 就是 db.customer db.getCollection("customer').find 就是 db.customer.find()

2020-04-17
7
老师,我用了$elemMatch,但是查不到结果。 db.fruit.find()返回: { "_id" : ObjectId("5e88ad16d0156d6e7035b343"), "name" : "orange", "filming_locations" : { "city" : "Rome", "country" : "Italy" } } { "_id" : ObjectId("5e88ad66d0156d6e7035b344"), "name" : "pie", "filming_locations" : { "city" : "Newyork", "country" : "Usa" } } 用了下面语句查不到结果: db.fruit.find({"filming_locations":{$elemMatch:{"city":"Rome","country":"Italy"}}});

作者回复: filming_locations 必须是个数组类型。你这个不是数组。

2020-04-05
4
Geek_6297e5
请问,elematch和分开写有什么区别?

作者回复: $elemMatch表示一个数组元素同时满足两个条件 分开写表示一个元素满足一个条件,另一个元素满足另一个条件也算数 举例来说: db.test.insert({array: [{a: 1, b: 1}, {a: 2, b: 2}]}) db.test.find({"array.a": 1, "array.b": 2}); // 有结果,因为一个元素满足了a=1,另一个元素满足了b=2 db.test.find({array: {$elemMatch: {a: 1, b: 2}}}); // 没有结果,因为没有一个元素同时满足a=1并且b=2

2019-12-31
3
4
大鹏
老师,文件分布式的文件存储也会选用MongoDB么?除了MongoDB还有其他的解决方案吗?

作者回复: 可以尝试 minio

2020-04-17
2
qbit
老师能详细介绍一下 MongoDB 4.2 的新特性通配符索引(Wildcard Indexes)吗?

作者回复: 简单来说,wildcard index对于下面这样的结构: { "_id" : 1, "data" : { "a" : 1728, "b" : 6740, "c" : 6481, "d" : 2066, "e" : 3173 } } 可以一条命令(一个索引)同时对a/b/c/d/e 5个字段做索引 db.wildcardIndex.createIndex({"data.$**":1}); 甚至你将来在这个子文档里增加新的字段,也会自动索引。这样省去你单独创建很多个索引。 但是。。。性能上有人测试过,这种比单独建每个索引还是要更加耗资源,差不多是两倍。 所以方便的代价是资源的更多消耗

2019-11-23
2
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
2
1
旺旺
db.fruit.find( { "from" : {country: "China"} } ),这个到底是在查什么呢?查一个json对象字段from的值是“{country: "China"}”吗?好像不是这样的。

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

2019-11-20
3
1
逍遥子
老师你好,请问是否可以多个集合叠加起来一起查询,比如,集合A\B\C,有几个属性是一样的:a1、a2,我需要从这A/B/C 3个集合中查询出属性值为a1的所有文档,MongoDB是否支持这样的语法?多谢

作者回复: 4.4 貌似支持了 Query Union,你看看是否可以满足你的需求。 4.4 之前可以用lookup 但是条件是A/B/C之间有类似主外键的关联关系

2020-08-19
jeephy
老师好,请问分片集群的chunk分裂阈值有哪些?shard key与chunk的分裂阈值是什么关系?如何避免按shard key做chunk分裂时出现超出chunkSize的chunk块?

作者回复: 这个阈值应该是在80%(64MB * 80%)的时候,就会把块一分为二。

2020-04-15
2
收起评论