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 = UserModel
index.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