moogoose是Node js的一个库 用于在Node Js中更好的操作mongodb的数据操作
首先我们要下载moogoose的包
npm install moogoose
这里为了简单起见 我们在app.js中引入对数据库的链接
//数据库的链接
var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/TicketProject");
接下来是三大概念的讲述
schema 一种以文件形式存储的数据库模型骨架,无法直接对数据库进行操作 仅仅是集合的模型骨架
我们可以这要去定义一个schema
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var user = new Schema({
//定义字段
username:{type:String,unique:true, required: true},
name:String,
password:String,
mobile:String,
cardTye:String,
cardId:String,
email:String,
});
这就相当于在关系型数据库中的一张表 这里user就是一个集合的名称 如果user存在 则会向其中插入数据,否则会创建该集合
基本属性类型有:字符串,日期,数值,布尔型,数组,内嵌文档等
接下来就是暴露给外部进行使用
exports.User = mongoose.model("User", user);
这里表示给user起一个别名 User 这样可以在路由文件中进行使用
Models 简述 由schema构造生成的模型,除了schema定义的数据库骨架以外,还具备对数据库的操作功能
var models = require('./models');
var User = models.User;
Entity --由model创建的实体,使用save方法保存数据,model和entity都有对数据库操作的功能,但model对entity更具有操作性
保存的动作
var user = new User({
username:username,
name:"",
password:password,
mobile:mobile,
cardTye:"",
cardId:"",
email:"",
});
user.save(function (err,data) {
if(err){
res.send({success:0});
}else{
res.send({success:1});
}
})
});
第一个返回的是保存是否出错 第二个返回的是保存后影响到的值
查询动作
obj.find(查询条件,callback);
Model.find({},function(error,docs){
//若没有向find传递参数,默认的是显示所有文档
});
User.find({username:username,password:password}).exec(function (err,data) {
console.log(data);
if(err){
res.send({success:0});
}else if(data.length == 0)
res.send({success:0});
else
res.send({success:1,data:data});
})
});
findOne操作,只查询一条数据
findById
与findOne相同,但它只接收文档的_id作为参数,返回单个文档。
单条数据 findById(_id, callback);
跟新数据
obj.update(查询条件,更新对象,callback);
删除数据也相同
.remove(conditions,function(error){
})
大于 等于 小于操作 和在mongodb中的操作一样 $gt:大于等于 $lt:小于鞥与
对返回的结果数量进行限制
find(condition,fields,options.callback)
Model.find({},null,{limit:20},function(err,docs){
console.log(docs);
});
排序方法
model.find({},null,sort{:{age:1}},function(err,doc){
})
schema也可以添加属性值;