使用 Mongoose 将 JSON 加载到 Mongodb
Loading JSON into Mongodb using Mongoose
编辑- 这实际上很好用...如果您实际上在最后调用该函数...
我正在将 xml 文件转换为 JSON,如下所示:
const convert = require('xml-js');
const rawXml = require('./data');
const dataToJson = convert.xml2json(rawXml, {compact: true, spaces: 4});
console.log('xml to JSON worked');
module.exports = dataToJson;
然后想使用 mongoose 将其加载到我在 MongoDB 中的数据模型中。
require('dotenv').config({ path: __dirname + '/../variables.env' });
const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE);
mongoose.Promise = global.Promise;
const dataToJson = require('../convert-data');
const Data = require('../models/data_model');
console.log(dataToJson);
async function loadData() {
try {
await Data.insertMany(dataToJson);
console.log('It Worked!');
process.exit();
}catch(e){
console.log('Oops...')
console.error(e);
process.exit();
}
};
loadData();
JSON 在控制台上显示正常,但在到达 loadData() 函数时什么也不做,甚至没有抛出错误。使用 MongoDb compass 显示没有任何内容被插入到数据库中。
您没有调用 loadData 函数。
async function loadData() {
try {
await Data.insertMany(dataToJson);
console.log('It Worked!');
process.exit();
}catch(e){
console.log('Oops...')
console.error(e);
process.exit();
}
};
loadData();
编辑- 这实际上很好用...如果您实际上在最后调用该函数...
我正在将 xml 文件转换为 JSON,如下所示:
const convert = require('xml-js');
const rawXml = require('./data');
const dataToJson = convert.xml2json(rawXml, {compact: true, spaces: 4});
console.log('xml to JSON worked');
module.exports = dataToJson;
然后想使用 mongoose 将其加载到我在 MongoDB 中的数据模型中。
require('dotenv').config({ path: __dirname + '/../variables.env' });
const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE);
mongoose.Promise = global.Promise;
const dataToJson = require('../convert-data');
const Data = require('../models/data_model');
console.log(dataToJson);
async function loadData() {
try {
await Data.insertMany(dataToJson);
console.log('It Worked!');
process.exit();
}catch(e){
console.log('Oops...')
console.error(e);
process.exit();
}
};
loadData();
JSON 在控制台上显示正常,但在到达 loadData() 函数时什么也不做,甚至没有抛出错误。使用 MongoDb compass 显示没有任何内容被插入到数据库中。
您没有调用 loadData 函数。
async function loadData() {
try {
await Data.insertMany(dataToJson);
console.log('It Worked!');
process.exit();
}catch(e){
console.log('Oops...')
console.error(e);
process.exit();
}
};
loadData();