mongodb版本升级

四糸乃赛高 Lv.5 冰封大地
42 2021/4/30笔记

今天检查服务器的时候突然发现随机文章模块没加载出来,然后看了一下报错

MongoError: exception: Unrecognized pipeline stage name: '$sample'

第一反应觉得是版本问题,看了一下 服务器上的版本是3.0.6 我本地的是4.4.2,然后查了一下文档,这个操作符是3.2以后才有的,确实是版本问题。

$sample (aggregation)
Definition
$sample
New in version 3.2.
Randomly selects the specified number of documents from the input documents.The $sample stage has the following syntax:
{ $sample: { size: <positive integer N> } }
N is the number of documents to randomly select.


先对数据库进行备份

mongodump -d dbname -o "备份的路径" -u 用户名 -p 密码

查了一下资料,好像不能跨版本升级,而且正好管道操作符$sample是3.2新增的功能,所以升级到3.2暂时够了。

curl "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian71-3.2.7.tgz" -k -v -o mongodb-3.2.7.tgz 

先进入mongodb停止服务

mongo> db.shutdownServer()

然后解压文件,将原来安装路径(/usr/local/mongodb/)下的文件进行替换。

再次开启服务

mongod --dbpath /var/mongodb/data --logpath /var/mongodb/log/mongod.log --fork --auth

输入mongodb能正常进入,再开启node服务器,问题解决。

# mongodb # 数据库

评论

后参与评论
还没有评论,来说点什么吧~