1. mongoose
1.1 是一个将JavaScript对象与数据库产生关系的一个框架,object related model。操作对象,就是操作数据库了
1.2 在用nodejs 操作数据库过程中没有一个语句是明显的操作数据库 ,感觉都在创建类、实例化类、调用类的方法。都在操作对象,
但是数据库同步操作了
1.3 mongoose的思想就是用操作对象的方法来操作数据库。
2 mongoose的基本使用方法
2.1 引入mongoose模块,不需要引入mongodb这个模块
# var mongoose = require("mongoose");
2.2 连接数据库
# mongoose.connect("mongodb://localhost:27017/xds");
# xds 表示数据库名字
2.3 创建模型 可以简单理解为类,构造函数
# var user = mongoose.model("people",{"name":String})
# 第一个参数people 根据此参数来自动创建一个集合名peoples
# 第二个参数为文档的数据数据结构
2.4 实例化一个对象
# var user1 = new People({"name":"laownag"});
3. mongoose 提供两类方法来操做crud,curd为Create、Read、Update、Delete操作的总称
方法一:实例方法(只有两种)
save() 插入数据
创建实例后在进行插入
remove() 删除一条数据 # 要先找到数据在进行删除
方法二:静态模型方法
静态模型.create("文档对象",callback(err,实例文档对象))
注意:
1. Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
2. Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
3. createConnection() 创建多数据库进行连接
4. mongoose 提供了两个接口来给实例对象和静态模型添加方法来操作数据库
4.1 添加 mongoose 实例方法
eg: mongooseSchema.methods.findbyusername = function(username, callback) {
this.model('mongoose').find({username: username}, callback);
}
# this指实例对象
# mongoose 为对应的集合名称
4.2 添加 mongoose 静态方法,静态方法在Model层就能使用
eg: mongooseSchema.statics.findbytitle = function(title, callback) {
this.model('mongoose').find({title: title}, callback);
}