• firek
    2019-12-25
    老师,mongodb除了collection之外还有一个功能可以存附件,比如文件,视频,音频等。这个是和普通关系型数据库有区别的地方吧,还有就是以前面试的时候,面试官也拿mongodb和fastdfs提问,两者有什么区别,老师你可以用之前的项目经验解答下么?

    作者回复: MongoDB的GridFS 不是一个真正的filesystem。它其实是一个api sugarcoating。实现是在驱动端(不是mongodb服务器!),提供一个字节流的API, 允许你把二进制文件通过这个接口提交给MongoDB 驱动,或者从这个接口读取二进制文件流。然后驱动会把这个文件分块,每一块作为一个mongodb的文档插入到集合里。 当你需要的时候,mongodb驱动会把所有相关的切块读出来,拼成一整个文件,返回给应用程序。

    所以这个不是真的文件系统,只是提供了一个虚拟的文件接口供应用进行文件存储和读取。优点是可以用到mongo的分布式能力,做海量的二进制文件管理和高可用等。

    
     2
  • 高宇
    2020-01-21
    老师好,我这边有个疑问,MongoDB默认生成的 _id 类型是 ObjectId,在做查询时,经常需要考虑做类型转换处理,不然会碰到查不到数据的问题。
    虽然ORM框架可以处理这个问题,但我想确认一个问题就是如果每次插入数据的时候都提前 new ObjectID,然后设置一个 string 类型的主键,和原生 ObjectID 相比是否有什么不好的地方,比如说性能是否会差一些

    作者回复: 么有太大区别,性能上也不会有什么差别,除了你自己要保证这个_id的唯一性。

    
    
  • Jawohl
    2020-01-01
    我们知道,要给oracle数据库的表新增字段以适应业务需求,并投入生产环境,这是需要评估的,因为新增表字段,投入生产环境会面对上亿流量的冲击,关系型数据库是否扛的住,是个风险。那么作为文档型的Mongo数据库,为了适应业务,也拓展模型,新增dto以及字段并投入生产面对大流量考验,会有什么隐患么?说白了,业务扩展,加字段投生产,Mongo扛得住生产环境么?

    作者回复: 新增表字段,就会引来上亿流量冲击 - 这个能详细说下是什么样的一个情况吗?我脑补不上

    上亿流量是一天?一个小时?取决于时间周期,这个大概率不是什么问题。

    
    
我们在线,来聊聊吧