Mongoose索引、内置方法、静态方法与实例方法

Galatea ·
更新时间:2024-09-21
· 573 次阅读

1. Mongoose 索引

索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快,MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。

Mongoose 中除了以前创建索引的方式,也可以在定义 Schema 的时候指定创建索引。 // 定义schema时添加索引 var UserSchema=mongoose.Schema({ name:{ type:String, // 普通索引 index:true }, sn:{ type:String, // 唯一索引 unique:true }, age:Number, status:{ type:Number, default:1 } }) 2. Mongoose 的内置方法

https://mongoosejs.com/docs/queries.html

1. Model.find() 2. Model.findById() 3. Model.findByIdAndDelete() 4. Model.findByIdAndRemove() 6. Model.findByIdAndUpdate() 7. Model.findOne() 8. Model.findOneAndDelete() 9. Model.findOneAndRemove() 10. Model.findOneAndUpdate() 11. Model.updateMany() 12. Model.updateOne() 13. Model.deleteMany() 14. Model.deleteOne() 15. Model.replaceOne() 3. Mongoose 的静态方法与实例方法

为 schema 添加静态方法时通过statics关键字添加,添加实例方法通过methods 关键字添加。

// 引入自定义的连接数据库文件 var mongoose=require('./db.js'); // 定义schema时添加索引 var UserSchema=mongoose.Schema({ name:{ type:String, // 普通索引 index:true }, sn:{ type:String, // 唯一索引 unique:true }, age:Number, status:{ type:Number, default:1 } }) // 添加一个按 sn 查找数据的静态方法 UserSchema.statics.findBySn=function(sn,cb){ // this 指向当前的 model this.find({"sn":sn},function(err,docs){ cb(err,docs) }) } // 实例方法 (基本没啥用) UserSchema.methods.print=function(){ console.log(this.name) } module.exports=mongoose.model('User',UserSchema,'user');

页面使用时

// 引入定义模型文件 var UserModel=require('./model/user.js'); UserModel.findBySn('123456',function(err,docs){ if(err){ console.log(err); return; } console.log(docs); // 按sn所查找到的数据 }); var user = new UserModel({ name: '赵六', sn:'12345678', age: 29 }); user.print(); // 赵六
作者:aiguangyuan



方法 静态 mongoose 静态方法

需要 登录 后方可回复, 如果你还没有账号请 注册新账号