MongoDb数据库
发布于 8 年前 作者 JerrysShan 3871 次浏览 来自 问答

使用MongoDB 数据库,使用Mongoose模块,若定义了一个Schema,已经往数据库里面插入了一些数据。 后来需求有变动,需要增加几个字段,我的做法是在Schema添加这几个字段,然后往数据库里面存的是改变了的doc。 但是我查询的时候,我怎么判断某条doc有没有后来我添加的字段,这样很容易造成undefined错误。 难道只有我修改了Schema,也在历史数据中添加这几个字段的默认值这种做法,想请问大神们你们遇到这种情况的做法是什么?

5 回复

你做的产品之前发布过了吗?没发布过的话我觉得可以不用管他。 要是发布过了你可以按你说的把数据库更新一下,或者在代码里判断一下这几个字段是不是undefined再做处理。 这些字段如果是必需的话我觉得更新一下数据库也挺好的。

从你的描述来看,你是以mysql等关系型数据库的思维在想这个问题,想做到后期添加一个字段也会影响历史数据;不过从非关系性数据库的特性来说,并不一定需要影响历史数据,主要从产品需求,如果需要历史数据也必须有新增字段,那就写个脚本批量更新下,或者,最简单的,从逻辑层做下兼容,也是蛮简单的。

试下 default 属性呢?

@backcj 行,知道了一种思路。

@haozxuan 看来思路有需要转变一下

回到顶部