2014-10-09 69 views
0

我正在使用Mongoose的Angular.js。猫鼬创建错误模式

我已经从Angular.js创建了一个模式,并且我将数据插入到同一模式中。 但是当我在MongoDB上运行show collections时,它显示后缀为's'的集合名称。

例如,我使用架构名称test,运行查询将集合显示为tests

下面是我使用的代码:

var express = require('express'); 
var path = require('path'); 
var favicon = require('static-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var routes = require('./routes/index'); 
var users = require('./routes/users'); 

var methodOverride=require('method-override'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

app.use(favicon()); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 
app.use(cookieParser()); 
app.use(methodOverride(function(req, res){ 
    if (req.body && typeof req.body === 'object' && '_method' in req.body) { 
     // look in urlencoded POST bodies and delete it 
     var method = req.body._method 
     delete req.body._method 
     return method 
    } 
})); 

/* app.use(express.static(path.join(__dirname, 'public'))); */ 

mongoose.connect('mongodb://localhost/Project'); 

var custSchema=new mongoose.Schema({ 
    custid : String, 
    name : String, 
    password: String 
}); 

var customer= mongoose.model('test',custSchema); 
console.dir(customer); 

app.use(function(req,res,next){ 
    req.user = customer; 
    next(); 
}); 


//app.use('/', routes.index); 
app.get('/', routes.index); 
app.get('/show',routes.list); 
app.get('/new',routes.list);  
//app.post('/show',routes.create); 
//app.use('/users', users); 

/// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

/// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
     res.status(err.status || 500); 
     res.render('error', { 
      message: err.message, 
      error: err 
     }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: {} 
    }); 
}); 


module.exports = app; 

回答

0

这是猫鼬在默认情况下如何操作。

The documentation states

猫鼬默认通过传递模型 名字到utils.toCollectionName方法产生的集合名称。 这种方法复数 名称

它还显示如何覆盖此行为。

+0

谢谢你..但它显示了如何从集合中删除'_id',但我在收集名称有问题。 – kawade 2014-10-09 08:39:29

+0

@kawade向上滚动... – robertklep 2014-10-09 08:41:39