2012-08-14 196 views
0

我试图用node.js/mongoose保存一些文件。猫鼬不保存文件

我从csv文件中检索数据并使用csv模块导入数据。

不知何故,它说所有记录都正确保存到数据库,但当我通过'mongo'命令打开它并解析数据库时,根本没有任何信息被保存。

这是我使用的代码:

//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

调查后,相当多的,我可以看到一个集合“jugadors”已在数据库中创建的所有导入的数据。我将连接设置为localhost/camelot。不应该使用这些数据创建'Camelot'集合吗? – Perseoh 2012-08-14 12:15:11

+0

正如你的代码中使用的那样,'Camelot'是数据库的名字,'jugadors'是该数据库中集合的名字。 – JohnnyHK 2012-08-14 13:37:56

回答

1

猫鼬默认复数化型号名称。你可以通过第三个参数手动设置集合名称db.model如果你需要这样的:

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

谢谢,可以找到这个集合,但那第三个参数非常有用:) – Perseoh 2012-08-15 14:11:14