9. mongoose 索引及静态实例方法

1. 索引

索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快。mongoose中,还可以在定义Schema的时候指定创建索引

  1. var DeviceSchema = new mongoose.Schema({
  2. sn: {
  3. type: Number,
  4. unique: true // 唯一索引
  5. },
  6. name: {
  7. type: String,
  8. index: true // 普通索引
  9. }
  10. });

2. 内置CURD方法

详见文档

3. 手动扩展方法

  1. // user.js中
  2. var mongoose = require('./db.js');
  3. var UserSchema = mongoose.Schema({
  4. name: { type: String },
  5. age: Number,
  6. status: {
  7. type: Number,
  8. default: 1
  9. }
  10. });
  11. // 静态方法
  12. UserSchema.statics.findByUid = function (uid, cb) {
  13. this.find({ _id: uid }, function (err, docs) {
  14. cb(err, docs);
  15. });
  16. }; // 实例方法
  17. UserSchema.methods.print = function () {
  18. console.log('这是一个实例方法');
  19. console.log(this);
  20. };
  21. module.exports = mongoose.model('User', UserSchema, 'user');
  1. // 使用时
  2. const UserModel = require('./user.js')
  3. UserModel.findByUid('123123', (err, res) => {})
  4. const zs = new UserModel({name: '张三', age: 5})
  5. zs.print()