MongoDB Compass直接导入
导入数据
mongoimport -d <数据库名字> -c <集合名字> --file <需要导入的数据路径>
执行代码
const mongoose = require('mongoose')
const colors = require('colors')
const dotenv = require('dotenv')
const fs = require('fs')
const Mscamp = require('./models/Mscamp.js')
const Course = require('./models/Course.js')
// 配置环境变量
dotenv.config({
path: "./config/config.env"
});
// 连接数据库
mongoose.connect('mongodb://localhost/api', {
useNewUrlParser: true,
useUnifiedTopology: true
})
// 读取本地json
const mscamps = JSON.parse(
fs.readFileSync(`${__dirname}/_data/mscamps.json`, "utf-8"))
const courses = JSON.parse(
fs.readFileSync(`${__dirname}/_data/courses.json`, "utf-8"));
// 导入数据到mongodb数据库
const importData = async () => {
try {
await Mscamp.create(mscamps);
await Course.create(courses);
console.log("数据存储成功".green.inverse);
process.exit();
} catch (error) {
console.log(error);
}
};
// 删除数据库中的数据
const deleteData = async () => {
try {
await Mscamp.deleteMany();
await Course.deleteMany();
console.log("数据删除成功".red.inverse);
process.exit();
} catch (error) {
console.log(error);
}
};
//根据执行的命令 决定是存储还是删除 node seeder.js -i / -d
if (process.argv[2] == "-i") {
importData();
}
else if (process.argv[2] == "-d") {
deleteData();
}
process 对象是一个全局变量
它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程
无需使用 require()
process.argv 属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数
process.argv[0] 返回启动Node.js进程的可执行文件所在的绝对路径
process.argv[1] 当前执行的JavaScript文件路径
剩余的元素为其他命令行参数