之前在mongodb搞了个免费的512MB的mongodb数据库,刚好今天要搭建一个nodejs项目需要的数据库是mongodb,项目里的数据库连接的是本地localhost,因为是第一次接触nodejs + mongodb,以为改个IP地址就可以了,没想到折腾了好久都没搞懂。

然后Search了好多教程大多都是本地连接,最终还是找到了,连接好以后需要用mongorestore恢复数据,又遇到了一个坑,运行mongorestore命令需要安装mongo-tools工具才可以,然后又安装了mongo-tools,最终完美连接并导入。

Node.js连接远程mongodb代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const mongoose = require("mongoose");
const db = mongoose.connect(
"mongodb+srv://数据库用户名:数据库密码@IP地址:端口/数据库名",
{
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
},
function (error) {
if (error) {
console.log("连接远程mongo数据库失败:" + error.message);
} else {
console.log("连接远程mongo数据库成功");
}
},
);
module.exports = db;

mongorestore恢复远程mongodb代码

1
2
3
4
5
6
7
8
9
10
11
var process = require("child_process");
process.exec(
'mongorestore --uri="mongodb+srv://数据库用户名:数据库密码@IP地址:端口/数据库名" 需要恢复的数据文件目录',
function (error, stdout, stderr) {
if (error) {
console.log("执行重置数据库失败, 异常信息:" + error.message);
} else {
console.log("执行数据库重置成功!");
}
},
);

Node.js连接本地mongodb代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const mongoose = require("mongoose");
const db = mongoose.connect(
"mongodb://localhost:端口/数据库名",
{
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
},
function (error) {
if (error) {
console.log("连接本地mongo数据库失败:" + error.message);
} else {
console.log("连接本地mongo数据库成功");
}
},
);
module.exports = db;

mongorestore恢复本地mongodb代码

1
2
3
4
5
6
7
8
9
10
11
var process = require("child_process");
process.exec(
"mongorestore -h 127.0.0.1:27017 -d 数据库名 需要恢复的数据文件目录 --drop",
function (error, stdout, stderr) {
if (error) {
console.log("执行重置数据库失败, 异常信息:" + error.message);
} else {
console.log("执行数据库重置成功!");
}
},
);