前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mongoose索引、内置方法、静态方法与实例方法

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

作者头像
越陌度阡
发布2020-11-26 12:32:42
2.4K0
发布2020-11-26 12:32:42
举报

1. Mongoose 索引

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

Mongoose 中除了以前创建索引的方式,也可以在定义 Schema 的时候指定创建索引。

代码语言:javascript
复制
// 定义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 关键字添加。

代码语言:javascript
复制
// 引入自定义的连接数据库文件
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');

页面使用时

代码语言:javascript
复制
// 引入定义模型文件
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();  
// 赵六
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Mongoose 索引
  • 2. Mongoose 的内置方法
  • 3. Mongoose 的静态方法与实例方法
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档