最近在学mongodb,用了mongoose作为数据库接口,我显示在数据库命令行手动创建了一个表,名称为“User”,插入了一些数据, 然后使用以下代码查询这个表,无论如何也查不到结果:
var mongoose = require('mongoose');
var DBTesturl = 'mongodb://localhost:27017/Test';
var dbTest = mongoose.connect(DBTesturl,function(err){
if(!err)
{
console.log("Connect to DB Successfully!");
}else{
console.log("Error to connect to DB");
}
});
var Schema = mongoose.Schema;
var userScheMa = new Schema({
name: String,
password: String
});
var DBUser = dbTest.model('User',userScheMa);
var query = {name:'ychen',password:'12345'};
DBUser.find({},function(err,docs){
console.log(docs);
});
后来经过网上大神的指点,才知道,
var DBUser = dbTest.model('User',userScheMa);
第一个参数并不是表的名字,mongoose会自动在这个名字后面加上s来查询。如果想要查询自己创建的表,应该在第三个参数设置,也就是这样:
var DBUser = dbTest.model('User',userScheMa,'User');
真是一个大坑。。。