问题:

同事使用了deleteMany方法用于删除数据,但是全公司只有我一个人报错deleteMany is not a function。

很自然,输出了model.deleteMany,得到的结果是undefined。

解决方法:

1. 最先想到的是,是不是mongoDB的版本低了。查询发现当前版本支持。

2. 然后想到了mongoose版本不对,当前版本为4.8.5,强制升级到最新版本4.12.0。由于4.12.0更改了连接的方法,项目运行无法连接数据库,吓得马上降级会4.8.5。

3. 因为同事都不报错,找了一个同事,帮我查看node_modules下的mongoDB和mongoose版本:

    同事: mongoose@4.10.7,mongoDB@2.2.29

    我: mongoose@4.8.5,mongoDB@2.2.24

    根据同事的mongoose版本升级后,问题解决。

4. 查看项目的package.json文件,发现配置的devDependencies中,"mongoose": "^4.8.5",修改此处配置为"mongoose": "~4.10.7"。

PS: ^4.8.5,表示在4.X.Y中找比不低于4.8.5的最新的安装,~4.10.7表示在4.10.Y中找不低于4.10.7的最新版本安装。

        此处使用~为了保证新配置环境时,使用npm install,不会出现该问题,亦不会导致无法连接数据库。

posted on 2017-10-16 12:05  今木。非昔木  阅读(347)  评论(0编辑  收藏  举报