2016-12-21 5 views

답변

0

Model.collection.insert 또는 Model.insertManycollections이 일괄 항목 배열 인 경우 다음과 같이 사용할 수 있습니다.

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/

+0

안녕하세요. Aruna 님, 컬렉션에 xlx 시트 데이터를 어떻게 가져올 수 있습니까? – MMR

1

당신은 몽구스의 배치/대량 삽입 여러 레코드를 삽입 할 수 있습니다.

var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }]; 
Movies.insertMany(arr, function(error, docs) {}); 

의 난 엑셀은 다음과 같은 데이터를 employees.xlsx 파일을 가지고 있고 대량 쓰기를 수행한다고 가정 해 보자.

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; 

희망이 있습니다.