多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## **1、Mongoose 索引** 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更 快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询 优化技巧。 mongoose 中除了以前创建索引的方式,我们也可以在定义 Schema 的时候指定创建索引。 ``` var DeviceSchema = new mongoose.Schema({ sn: { type: Number, // 唯一索引 unique: true }, name: { type: String, // 普通索引 index: true } }); ``` ## **2、Mongoose 内置 CURD** https://mongoosejs.com/docs/queries.html * 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() ## **3、扩展 Mongoose CURD 方法** ``` var mongoose=require('./db.js'); var UserSchema=mongoose.Schema({ name:{ type:String }, age:Number, status:{ type:Number, default:1 } }) // 静态方法 UserSchema.statics.findByUid=function(uid,cb){ this.find({"_id":uid},function(err,docs){ cb(err,docs) }) } // 实例方法 UserSchema.methods.print = function(){ console.log('这是一个实例方法'); console.log(this); }; module.exports=mongoose.model('User',UserSchema,'user'); ```