AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
## **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'); ```