• 一步
    2019-12-08
    如果被$lookup关联的表分片了,是不是只查询和主表在一个分区的数据了?

    作者回复: 无法工作了

    
     2
  • firek
    2019-12-26
    当数据量非常大的情况下,内嵌文档被频繁修改要遍历所有的顶层文档,如果改为引用设计也只能建立一个关系表对多对多的情况优化的好些,如果是一对多的,除了修改从表的数据外,对从表的增删还是要在主表操作。

    作者回复: 对的,频繁修改是一个设计的考量,通常这个时候要考虑分出去另外一个集合,通过引用来表示关系。

    
     1
  • kylexy_0817
    2020-02-05
    老师,想问下头像图片文件,不是应该直接文件系统,数据库中只存链接吗?

    作者回复: 头像图片文件,如果只是几十KB那样,完全可以直接放在JSON里面。除非是大到数个MB,就建议分开存放了。

    至于是否文件系统,有别的考量了。文件系统不容易扩展,量达到亿/十亿级别管理会很麻烦。

    
    
  • DOTF
    2020-01-08
    老师;你好,新手问个问题:假如需求是联系人的属性是动态的,这种要怎么设计。关系型肯定更不好操作吧,比如说页面上有增删联系人属性的功能,这个模型怎么处理,尤其是作为面向对象开发,以Java为例,那这个联系人的属性对应的实体类属性就完全不知道怎么入手了,老师有什么建议吗,我是感觉这种功能好像是mongo数据库比较合适……。

    作者回复: 对这个动态模型就是MongoDB的特色。如果是非强类型语言如python / nodejs 会更加简单,直接JSON入库,JSON可以增加属性。

    模型处理mongodb端并不需要做任何工作,主要是你Java里面要能够给一个对象动态增加属性,然后把新对象交给Mongo就可以了

    
    
  • firek
    2019-12-26
    文档内嵌的层级基于性能考虑有没有限制,举个例子,比如实际业务中也可能内嵌5层这样的情况出现。

    作者回复: 之前的版本嵌套超过2层就会导致无法in place update, 需要把整个子文档读到应用端整体修改更新。新版本使用arryFilter可以更新任意深度了,从这个角度上来讲还好。

    
    
我们在线,来聊聊吧