当前位置:   article > 正文

将mysql数据表 导入mongodb里_mysql 数据导入mongodb

mysql 数据导入mongodb

1.首先将mysql的数据库导出为json文件

2.导出后将文件存放到文件夹里

3.使用node命令将导出的json数据处理一下;

我的文件目录为'D:/Users/liuhuanjie/Desktop/1'; // 文件夹路径,修改为自己的

新建一个js文件作为脚本,比如import.js

脚本如下,然后运行node import.js

  1. const fs = require('fs');
  2. const path = require('path');
  3. const folderPath = 'D:/Users/liuhuanjie/Desktop/1'; // 文件夹路径
  4. // 读取文件夹下所有文件名
  5. fs.readdir(folderPath, (err, files) => {
  6. if (err) {
  7. console.error('Error reading folder:', err);
  8. return;
  9. }
  10. // 遍历文件名数组
  11. files.forEach(file => {
  12. const filePath = path.join(folderPath, file);
  13. // 仅处理 JSON 文件
  14. if (file.endsWith('.json')) {
  15. console.log('Processing file:', filePath);
  16. modifyJSON(filePath); // 调用修改 JSON 结构的函数
  17. }
  18. });
  19. });
  20. // 修改 JSON 结构的函数
  21. function modifyJSON(filePath) {
  22. fs.readFile(filePath, 'utf8', (err, data) => {
  23. if (err) {
  24. console.error('Error reading file:', err);
  25. return;
  26. }
  27. try {
  28. const jsonContent = JSON.parse(data);
  29. if (jsonContent.RECORDS) {
  30. const modifiedData = JSON.stringify(jsonContent.RECORDS, null, 2);
  31. // 写入修改后的 RECORDS 到原文件
  32. fs.writeFile(filePath, modifiedData, 'utf8', (err) => {
  33. if (err) {
  34. console.error('Error writing file:', err);
  35. return;
  36. }
  37. console.log('File has been successfully modified:', filePath);
  38. });
  39. } else {
  40. console.log('No RECORDS found in the file:', filePath);
  41. }
  42. } catch (err) {
  43. console.error('Error parsing JSON:', err);
  44. }
  45. });
  46. }

4.将处理完的json文件,导入mongodb数据库里,我使用的数据库名为forge //修改为自己的

  1. const fs = require('fs');
  2. const { MongoClient } = require('mongodb');
  3. const path = require('path');
  4. const folderPath = 'D:/Users/liuhuanjie/Desktop/1'; // 文件夹路径
  5. const mongoURI = 'mongodb://localhost:27017'; // MongoDB数据库连接URI
  6. const dbName = 'forge'; // 数据库名称
  7. // 连接到MongoDB数据库
  8. MongoClient.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true }, async (err, client) => {
  9. if (err) {
  10. console.error('Error connecting to MongoDB:', err);
  11. return;
  12. }
  13. console.log('Connected to MongoDB successfully.');
  14. try {
  15. const db = client.db(dbName);
  16. // 读取文件夹下所有文件名
  17. const files = await fs.promises.readdir(folderPath);
  18. // 遍历文件名数组
  19. for (const file of files) {
  20. const filePath = path.join(folderPath, file);
  21. // 仅处理 JSON 文件
  22. if (file.endsWith('.json')) {
  23. console.log('Processing file:', filePath);
  24. const collectionName = path.basename(file, '.json'); // 获取集合名称
  25. await importJSONToMongo(db, filePath, collectionName); // 导入数据到MongoDB
  26. }
  27. }
  28. console.log('All files imported to MongoDB successfully.');
  29. } catch (err) {
  30. console.error('Error importing files to MongoDB:', err);
  31. } finally {
  32. // 关闭MongoDB连接
  33. client.close();
  34. }
  35. });
  36. // 导入JSON数据到MongoDB集合
  37. async function importJSONToMongo(db, filePath, collectionName) {
  38. const data = await fs.promises.readFile(filePath, 'utf8');
  39. const jsonData = JSON.parse(data);
  40. const collection = db.collection(collectionName);
  41. await collection.insertMany(jsonData);
  42. console.log('Data imported to collection:', collectionName);
  43. }

5.最后就成功了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/675517
推荐阅读
相关标签
  

闽ICP备14008679号