【 Node 】导入本地Json到MongoDB

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文件路径
  • 剩余的元素为其他命令行参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值