mongoose 的 model,query:增删改查
简介
mongoose是node.js的一个操作mongodb的模块,比起之前mongodb模块,只需要在开始时连接,不需要手动关闭,十分方便。
连接mongodb
首先你需要安装mongodb。
有了mongodb,你需要引入mongoose模块。
require('mongoose');
然后取连接mongodb
mongoose.connect('mongodb://localhost/myapp');//location是数据库地址,myapp为db名字
//mongoose.connect('mongodb://username:password@host:port/database?options...');
Model
要定义model首先需要定义一个schema.
var schema = new mongoose.Schema({ name: String, age: Number });
//定义model
var personModel = mongoose.model('person', schema);//person为collection名
model适合简单查询,保存,修改和删除。
保存一条新数据:
var saveobj = new persionModel({name:'小明',age:15});
saveobj.save(function(err){
if(err){
console.log('save error')
}else{
console.log('save successs');
}
});
查询记录
var query_doc = {age:15};//查询条件
persionModel.find(query_doc,function(err,data){
if(err){
console.log('query error');
}else{
console.log(data);//此时查询结构为一个数组
}
});
查询一条记录
var query_doc = {age:15};
personModel.findOne(query_doc,function(err,data){
if(err){
console.log('query one error');
}else{
console.log(data);//此时为一个结果对象
}
});
修改一条数据
var update_where = {name:'李四'};//更新条件
var update_data = {age:14};//更新数据
personModel.update(update_where,{$set:update_data},function(err){
if(err){
console.log('update error');
}else{
console.log('update success');
}
});
删除一条数据
var del_where = {name:'小明'};//删除条件
personModel.remove(del_where,function(err){
if(err){
console.log('delete error');
}else{
console.log('delete success');
}
});
Query
query适合复杂的查询。
首先获取一个query:
var query = personModel.find({});//当不带回调时会返回一个query对象
query
.skip(10)//跳过十行记录
.limit(10)//查询十行记录
.sort({_id:-1})//按id逆序排列
.where('age').gt(17).lt(66)//age字段大于17小于66
.exec(function(err,data){
//回调函数,do some thing
});
简单的mongoose操作mongodb就这么多啦,更多内容可以查看手册。http://www.nodeclass.com/api/mongoose.html