一、Mongoose索引
索引是对数据库表中一列或多列的值进行排序的一种结构。可以让我们查询数据库变得更快。MongoDB的索引几乎和传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。
我们可以在Schema中指定创建索引
var DeviceSchema = new mongoose.Schema({
sn:{
type:Number,
//唯一索引
unique:true
},
name:{
type:String,
//普通索引
index:true
}
})
二、静态方法
Model.deleteMany()
Model.deleteOne()
Model.find()
Model.findById()
Model.findByIdAndDelete()
Model.findByIdAndRemove()
Model.findByIdAndUpdate()
Model.findOne()
Model.findOneAndDelete()
Model.findOneAndRemove()
Model.findOneAndUpdate()
Model.replaceOne()
Model.updateMany()
Model.updateOne()
扩展静态方法增加 findBySn
方法
//通过statics扩展
UserSchema.statics.findBySn = function(sn){
/* this指当前的model */
return this.find({"sn":sn})
}
1.在model/user.js中定义
var mongoose = require('./db');
var UserSchema = new mongoose.Schema({
name:{
type: String,
index:true
},
sn:{
type: Number,
unique:true
},
age:Number,
status:{
type: Number,
default:1
}
})
UserSchema.statics.findBySn = function(sn){
/* this指当前的model */
return this.find({"sn":sn})
}
var User = mongoose.model('User',UserSchema,'user');
module.exports = User;
2.在app.js中直接使用
const UserModel = require('./model/user');
UserModel.findBySn(32324242).then(data=>{
console.log(data)
})
三、实例方法
//model/user.js
var mongoose = require('./db');
var UserSchema = new mongoose.Schema({
name:{
type: String,
index:true
},
age:Number
})
/* 扩展实例方法 */
UserSchema.methods.print = function(){
console.log('实例方法')
console.log(this.name)
}
var User = mongoose.model('User',UserSchema,'user');
module.exports = User;
//app.js
const UserModel = require('./model/user');
var user = new UserModel({
name:"陈超",
age:6
})
user.print();