노드 js에서 일괄 업로드를 수행하려고 시도하고 있으며 mongodb
이 내 데이터베이스입니다. 누군가이 문제와 관련하여 나에게 최고의 기사를 제안 할 수 있습니까? 사전에 감사드립니다.mongoose (node.js)에서 일괄 업로드를 수행하는 방법
-1
A
답변
0
Model.collection.insert
또는 Model.insertMany
은 collections
이 일괄 항목 배열 인 경우 다음과 같이 사용할 수 있습니다.
Model.collection.insert(collections, function (err, models) {
next(err, models);
});
OR,
Model.insertMany(collections, function (err, models) {
next(err, models);
});
몽구스 참조 : http://mongoosejs.com/docs/api.html#model_Model.insertMany
몽고 참조 : https://docs.mongodb.com/v3.2/reference/method/db.collection.insert/
1
당신은 몽구스의 배치/대량 삽입 여러 레코드를 삽입 할 수 있습니다.
var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr, function(error, docs) {});
의 난 엑셀은 다음과 같은 데이터를 employees.xlsx 파일을 가지고 있고 대량 쓰기를 수행한다고 가정 해 보자.
밖에 노드에서 JSON에 엑셀 데이터를 변환하는 몇 가지 라이브러리가있다, 나는 xlsx를 사용하지만 그것은 당신이 당신을 위해 편리 무엇이든 사용할 수 있습니다 개인적인 취향입니다.
"/ public/employees.xlsx"파일을 읽는 데 도움이되는 보조자입니다. here의 내용을 발견했습니다.
//** helper/excel-reader.js **//
var excelReader = {};
excelReader.readExcel = function(filePath){
var XLSX = require('xlsx');
var workbook = XLSX.readFile(filePath);
var sheet_name_list = workbook.SheetNames;
var data = [];
sheet_name_list.forEach(function(y) {
var worksheet = workbook.Sheets[y];
var headers = {};
for(z in worksheet) {
if(z[0] === '!') continue;
//parse out the column, row, and value
var tt = 0;
for (var i = 0; i < z.length; i++) {
if (!isNaN(z[i])) {
tt = i;
break;
}
};
var col = z.substring(0,tt);
var row = parseInt(z.substring(tt));
var value = worksheet[z].v;
//store header names
if(row == 1 && value) {
headers[col] = value;
continue;
}
if(!data[row]) data[row]={};
data[row][headers[col]] = value;
}
//drop those first two rows which are empty
data.shift();
data.shift();
});
return data;
}
module.exports = excelReader;
이제 직원 모델이 어떻게 든 생겼습니다. 이 데이터베이스에 CSV 내용 쓰기 :
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var employee = new Schema({
name: String,
adderess: String,
phonenumber: String
});
module.exports = mongoose.model('Employee', employee);
지금의 내
users.js 내가 입력 할 때마다 경로가 "3000/사용자가 localhost"를한다 그래서 여기에 위의 코드를 사용할 수 있습니다.
var express = require('express');
var router = express.Router();
var excelReader = require('../helpers/excel-reader');
var mongoose = require('mongoose');
var Employee = require('../models/employee');
/* GET users listing. */
router.get('/', function(req, res, next) {
var employeesJsonArray = excelReader.readExcel('./public/employees.xlsx')
Employee.insertMany(employeesJsonArray,function(error, docs) {
if(error){
next(error)
}
else{
res.json(docs);//just rendering the document i got
}
});
});
module.exports = router;
희망이 있습니다.
안녕하세요. Aruna 님, 컬렉션에 xlx 시트 데이터를 어떻게 가져올 수 있습니까? – MMR