Mongoose学习全面理解(推荐)

2020-06-17 06:57:26易采站长站整理

console.log(projects);
res.json(projects);
}else{
console.log(err);
res.json({"status":"error", "error":"Error finding projects"});
}
});
}else{
console.log("No user id supplied");
res.json({"status":"error", "error":"No user id supplied"});
}
};

二、创建Model

创建Model很简单:


Mongoose.Model('User', userSchema);

参数一为Model的名字,参数二为生成Model所需要的schema,Model就像是schema所编译而成的一样。

mongoose连接数据库是有两种方式的:


//方式一:
var dbURI = 'mongodb://localhost/mydatabase';
mongoose.connect(dbURI);
//方式二:
var dbURI = 'mongodb://localhost/myadmindatabase';
var adminConnection = mongoose.createConnection(dbURI);
//如果需要声明端口号:
var dbURI = 'mongodb://localhost:27018/mydatabase';
//如果需要定义用户名和密码:
var dbURI = 'mongodb://username:password@localhost/mydatabase';
//也可以像下面这样传一个对象类型的参数:
var dbURI = 'mongodb://localhost/mydatabase';
var dbOptions = {'user':'db_username','pass':'db_password'};
mongoose.connect(dbURI, dbOptions);

根据连接数据库的方式,我们可以得到第二种创建Model的方式,就是使用数据库连接的引用名来创建:


adminConnection.model( 'User', userSchema );

默认情况下mongoose会根据我们传入的Model名字来生成collection名字,在上面的代码中就会生成名为users(全为小写字母)的collection(集合);

有两种方法能让我们自定义collection的名字。


//方式一,在创建schema的时候定义collection的名字:
var userSchema = new mongoose.Schema({
name: String,
email: {type: String, unique:true}
},
{
collection: 'myuserlist'
});
//方式二,在创建Model的时候定义collection的名字:
mongoose.model( 'User', userSchema, 'myuserlist' );

创建Model实例:


var user = new User({ name: 'Simon' });

user就是模型User的一个实例,它具有mongoose中模型所具有的一些方法,例如保存实例:


user.save(function (err) {
if (err) return handleError(err);
});

模型也具有一些常用的增删查改的方法:


User.findOne({'name' : 'Sally', function(err,user) {
if(!err){
console.log(user);
}
});
User.find({}, function(err, users) {
if(!err){
console.log(users);