2012-08-14 5 views
0

node.js/mongoose를 사용하여 일부 문서를 저장하려고합니다.mongoose가 문서를 저장하지 않습니다.

나는 csv 파일에서 데이터를 검색하고 csv 모듈을 사용하여 데이터를 가져옵니다.

어떻게 든 모든 레코드는 DB에 정확하게 저장되지만, 'mongo'명령을 통해 열면 DB가 구문 분석되지 않습니다. 정보가 전혀 저장되지 않았습니다.

//import.js 
var csv = require('csv'); 
var mongoose=require("mongoose"), 
db = mongoose.createConnection('127.0.0.1','camelot'); 

db.on('error',function(){ 
console.error.bind(console,'conection error'); 
console.log("Error al crear conexion"); 
}); 
db.once('open',function(){ 
console.log("DB open") 
// Definicion de jugador 
var playerSchema = new mongoose.Schema({ 
    nombre: String, 
    alianza: String, 
    correo: String, 
    poder: Number, 
    nivel: Number, 
    villa1: { 
     nombre: String, 
     x: Number, 
     y: Number 
    }, 
    villa2: { 
     nombre: String, 
     x: Number, 
     y: Number 
    } 
}); 
var jugador = db.model('jugador',playerSchema); 
csv().fromPath('datos.csv',{columns: ['timestamp', 'nombre','alianza','x','y','nivel','poder','notas']})             
.on('end',function(count){ 
    console.log('Lineas:'+count) 
}) 
// --> PARSEO DE CADA LINEA DEL CSV <--// 
.on('data',function(data,index){ 
    var j = new jugador({ nombre: data.nombre }); 
    j.save(function (err){ 
     if(err){ 
      console.log('Error al escribir en la DB'); 
     }else 
     { 
      //console.log("Guardado: "+data.nombre); 
     } 
    }) 
}) 
});` 
+0

조사 후 아주 조금 더 나는 모든 가져온 데이터로 DB에서 생성 된 모음 'jugadors'를 볼 수 있습니다 . localhost/camelot에 대한 연결을 설정했습니다. 'Camelot'컬렉션이 데이터로 만들어 져야하지 않습니까? – Perseoh

+0

코드에서 사용 된 'Camelot'은 데이터베이스의 이름이고 'jugadors'는 해당 데이터베이스 내의 컬렉션 이름입니다. – JohnnyHK

답변

1

몽구스는 기본적으로 모델명 복수형 :

내가 사용하고 코드입니다. 당신이 필요로하는 경우 db.model하는 세 번째 인수를 전달하여 수동으로 수집 이름을 설정할 수 있습니다이 :

var jugador = db.model('jugador',playerSchema, 'jugador'); 
+0

감사합니다, 컬렉션을 찾을 수 있지만 그 세 번째 매개 변수는 매우 유익한입니다 :) – Perseoh

관련 문제