egg(25)--mongoose索引 ,扩展Mongoose Model的静态方法和实例方法
索引
索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更
快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询
优化技巧
user.js
var mongoose = require('./db.js');
var UserSchema = mongoose.Schema({
name:String,
sn:{
type:String,
},
age:Number,
status:{
type:Number,
default:1
}
})
//定义model操作数据库
// var UserModel = mongoose.model('User',UserSchema); //将生成users表
var UserModel = mongoose.model('User',UserSchema,'user');
module.exports = UserModel查找user表的索引
db.user.getIndexes()

增加字段sn的索引
sn:{
type:String,
index:true
},user.js
var mongoose = require('./db.js');
var UserSchema = mongoose.Schema({
name:String,
sn:{
type:String,
index:true
},
age:Number,
status:{
type:Number,
default:1
}
})
//定义model操作数据库
// var UserModel = mongoose.model('User',UserSchema); //将生成users表
var UserModel = mongoose.model('User',UserSchema,'user');
module.exports = UserModel查找索引

扩展Mongoose Model的静态方法
user.js
增加UserSchema.statics.findBySn
var mongoose = require('./db.js');
var UserSchema = mongoose.Schema({
name:String,
sn:{
type:String,
index:true
},
age:Number,
status:{
type:Number,
default:1
}
})
UserSchema.statics.findBySn=function(sn,cb){
this.find({"sn":sn},function(err,docs){
cb(err,docs)
})
}
//定义model操作数据库
// var UserModel = mongoose.model('User',UserSchema); //将生成users表
var UserModel = mongoose.model('User',UserSchema,'user');
module.exports = UserModelindex.js
先增加sn=123456的数据
var user = new UserModel({
name:'标题3',
age:20,
sn:"123456"
})
user.save(function(err,doc){
if(err){
console.log(err);
return;
}
console.log(doc)
})使用UserSchema.statics.findBySn方法
var UserModel = require('./user.js');
//静态方法
UserModel.findBySn('123456', function (err, doc) {
if (err) {
console.log(err);
return;
}
console.log(doc)
})运行

相关推荐
80530895 2020-07-05
mkhhxxttxs 2020-06-14
80500495 2020-06-14
86211943 2020-03-01
80530895 2020-02-23
80500495 2020-01-29
86211943 2020-01-24
lovecodeblog 2020-01-24
87261046 2019-12-23
86211943 2019-12-20
lightlanguage 2019-12-16
MYRENZHIBO 2019-08-28
85234656 2018-09-03
fudirong 2012-04-12
80500495 2019-07-01