博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
egg(25)--mongoose索引 ,扩展Mongoose Model的静态方法和实例方法
阅读量:5879 次
发布时间:2019-06-19

本文共 1882 字,大约阅读时间需要 6 分钟。

索引

索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更

快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询
优化技巧

user.js
var mongoose = require('./db.js');var UserSchema = mongoose.Schema({    name:String,    sn:{        type:String,    },    age:Number,    status:{        type:Number,        default:1    }})//定义model操作数据库// var UserModel = mongoose.model('User',UserSchema); //将生成users表var UserModel = mongoose.model('User',UserSchema,'user');module.exports = UserModel

查找user表的索引

db.user.getIndexes()

clipboard.png

增加字段sn的索引

sn:{        type:String,        index:true    },
user.js
var mongoose = require('./db.js');var UserSchema = mongoose.Schema({    name:String,    sn:{        type:String,        index:true    },    age:Number,    status:{        type:Number,        default:1    }})//定义model操作数据库// var UserModel = mongoose.model('User',UserSchema); //将生成users表var UserModel = mongoose.model('User',UserSchema,'user');module.exports = UserModel

查找索引

clipboard.png

扩展Mongoose Model的静态方法

user.js
增加
UserSchema.statics.findBySn
var mongoose = require('./db.js');var UserSchema = mongoose.Schema({    name:String,    sn:{        type:String,        index:true    },    age:Number,    status:{        type:Number,        default:1    }})UserSchema.statics.findBySn=function(sn,cb){    this.find({"sn":sn},function(err,docs){        cb(err,docs)    })}//定义model操作数据库// var UserModel = mongoose.model('User',UserSchema); //将生成users表var UserModel = mongoose.model('User',UserSchema,'user');module.exports = UserModel
index.js

先增加sn=123456的数据

var user = new UserModel({    name:'标题3',    age:20,    sn:"123456"})user.save(function(err,doc){    if(err){        console.log(err);        return;    }    console.log(doc)})

使用UserSchema.statics.findBySn方法

var UserModel = require('./user.js');//静态方法UserModel.findBySn('123456', function (err, doc) {    if (err) {        console.log(err);        return;    }    console.log(doc)})

运行

clipboard.png

转载地址:http://cccix.baihongyu.com/

你可能感兴趣的文章
C#语言中的属性语法还可以改进
查看>>
利用 spring bean 的属性 init-method 解决因为数据库连接没有初始化而导致首次点击页面超慢的问题...
查看>>
2016年五一
查看>>
在linux系统下怎么安装两个nginx
查看>>
知识管理系统Data Solution研发日记之六 窗体设计器
查看>>
35例带给你灵感的食品标志设计案例
查看>>
9、mysql中auto_increment的简单使用
查看>>
ap_invoice_distributions_all与PO表
查看>>
OpenGL编程指南 雾坐标
查看>>
C# WinForm获取当前路径汇总
查看>>
[转]轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
查看>>
五 数组
查看>>
也谈跨域数据交互解决方案
查看>>
EntityFramework中使用Include可能带来的问题
查看>>
activity 用 service 更新界面
查看>>
我的时间管理——充分利用WindowsPhone、Android等设备,实现真正的无压工作!
查看>>
面试题28:字符串的排列
查看>>
GetParent( ) 和AfxGetMainWnd( )
查看>>
php中的$_REQUEST
查看>>
优秀网页设计:别出心裁的创意网站导航菜单
查看>>