在node 中用mongoose来操作mongodb

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来添加回调。


你可能感兴趣的:(在node 中用mongoose来操作mongodb)