索引
索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更
快。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)
})
运行
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。