亲爱的学员:
你好,在回答学员问题的过程中,我发现大家对于第二章的事务处理, 特别是隔离级别,以及第三章的分片集群有相对较多的问题。在这里我给大家推荐一些补充的学习材料可以从另外一个角度来加深一些这些概念的理解。
MongoDB 事务的原子性
https://docs.mongodb.com/manual/core/write-operations-atomicity/
MongoDB 事务的隔离级别和一致性模型
https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/
如果英文不太感冒,在 MongoDB 中文网站上有不少内容,比如分片相关的:
http://www.mongoing.com/?s= 分片集群
课件和 Demo 地址
https://gitee.com/geektime-geekbang/geektime-mongodb-course
作者回复: 创建一个用户,指定ip白名单,然后给这个用户指定的权限。不完全是你i想要的,但是应该可以满足业务场景了吧。
作者回复: 问题不太清晰。 mongodb启动参数中的logpath指的是mongo系统日志文件路径, 相当于mongodb配置文件中的systemLog.path 你可以配置MongoDB写日志到以下目的地: 1) 本地文件 (命令行参数--logpath,或者配置文件 systemLog.path) 2) syslog (命令行参数 --syslog,或者配置文件内的systemLog.syslog) 3) 标准输出(不用任何参数,默认) 参见: https://docs.mongodb.com/manual/reference/configuration-options/#systemLog.path
作者回复: 1) 索引机制基本不会受影响,因为索引表里存的是密文,你的查询字段会先加密采取索引表匹配,所以是密文匹配密文,一样的机制。有一个例外就是正则表达式的前缀搜索就用不上索引了。 类似于这种查询: { name: /^张/ } 2) 分区字段不建议使用这个功能
作者回复: config 集群
作者回复: 1)可以用 it 命令显示更多行 2) 用 shellBatchSize 配置修改一次显示的行数 > DBQuery.shellBatchSize = 5; 5 > db.test.find() { "_id" : ObjectId("5e24f106b654ecda1fb72ce4") } { "_id" : ObjectId("5e24f106b654ecda1fb72ce5") } { "_id" : ObjectId("5e24f106b654ecda1fb72ce6") } { "_id" : ObjectId("5e24f106b654ecda1fb72ce7") } { "_id" : ObjectId("5e24f108b654ecda1fb72ce8") } Type "it" for more >