npm install mongoose
链接mongodb:
var mongoose=require('mongoose'); var Schema = mongoose.Schema; ObjectId = Schema.ObjectId; var url = 'mongodb://localhost:27017/nodejs'; var conn=mongoose.connect(url);
定义集合字段和名:
var todo_schema=new Schema({ id:ObjectId, name:String, age:{type:Number,default:0}, meta:{ createAt:{ type:Date,default:Date.now() },updateAt:{ type:Date,default:Date.now() } } }) var todo=conn.model('todo',todo_schema)查询
todo.find({},function(err,docs){
})
根据id查询
todo.find({_id:id},function(err,docs){
})
修改
var options={
upsert:true //没有修改值时插入数据
}
todo.findOneAndUpdate(query,obj,options,function(err,docs){
})
jquery:是查询对象一般是{_id:XX}
obj:{}是修改对象
options为配置
删除:
todo.remove(obj,function(err,docs){
})
一般都是通过_id来删除。
添加:
todo.create(obj,function(err,docs){
})
------------express 编写api
需要注意的是:
头部配置:
res.header("Access-Control-Allow-Origin", "*");
res.writeHeader(200, {'Content-Type':'application/json'});
返回数据:
res.end(JSON.stringify(json));
需要转换成json
/*
mongoose 中可以用 promise
todo.create({name:'ccs',age:33}).then(function(user){
console.log(user);
})
todo.find().exec().then(fn,fn)
todo.findById(id).exec().
todo.find().sort({'createTime': 'desc'}).exec()
todo.remove(obj).exec.then()
/*
find().sort() 方法可以这样使用。
返回exec()
返回值可以.then来添加回调。