mongodb是一种以键值对存储数据的数据库
这种和我们的json格式的数据很类似,像其他的关系型数据库 我们可以通过sql文件导入的形式 将数据导入数据库
既然mongodb是键值对的形式 我们也可以将json文件导入到mongodb数据库中
今天就是以koa框架 进行数据的导入 首先我们先在koa项目下创建一个data的文件夹然后复制进去我们的user.json文件
思路是创建一个路由 通过网页访问路由地址 执行我们的导入操作
先定义我们mongodb的集合规范 Use.js
const mongoose=require('mongoose');
const Schema=mongoose.Schema; // 声明
const userSchema=new Schema({
id:Schema.Types.ObjectId,
name:String,
img:String
})
mongoose.model('User',userSchema); // 发布数据模型
然后在创建路由的文件夹下 创建 user.js的路由文件
const Koa=require('koa');
// 引入路由
const Router=require('koa-router');
let router=new Router();
// 引入mongodb数据库
const mongoose=require('mongoose');
// 引入文件操作
const fs=require('fs');
// 将json数据写入数据库中
router.get('/insertUser',async ctx=>{
// 读取json文件 记住 这个路由文件最后也是要引入 开启服务器的那个 主文件 所以是相对于主文件的 所在位置不是相对于这个user.js文件
fs.readFile('./data/user.json','utf8',(err,data)=>{ // 异步文件读取操作
data=JSON.parse(data); // 将读取的文件内容 转换成json对象 格式
const User=mongoose.model('User'); // 引入发布的那个模型
data.map((item,index)=>{ // 将数据集合进行操作 map不仅仅是 数组的函数 对于对象结构数据照样可以使用
const user=new User(item) // 导出一个json对象 存进去一次
user.save().then(()=>{
console.log('存入成功')
}).catch(err=>{
console.log('存储失败'+err);
})
})
});
ctx.body="导入数据";
})