mongoDb性能提升
最近在弄MongoDB的时候 发现只按照官网的方式进行操作的话,性能不行,想着用单例模式封装一下,提升一下性能,代码如下:
//引入mongodb相关的模块
const MongoClient = require("mongodb").MongoClient;
//mongodb数据库的相关配置信息
const config = {
//数据库链接地址
dbUrl:"mongodb://localhost:27017",
//要操作的数据库名称
dbName:"ydb"
};
//创建相应的数据库实体类 //说明:因为操作数据库是一个异步操作 用一个promise解决异步问题 后面在koa中await就可以直接获取值了
class MgondoDb {
//采用单例模式
static getInstance() {
if (!MgondoDb.instance) {
MgondoDb.instance = new MgondoDb();
}
return MgondoDb.instance;
}
constructor(){
this.dbClient = '';
this.connect();
} connect(){ return new Promise((resolve,reject)=>{
if(!this.dbClient){
MongoClient.connect(config.dbUrl,(err,client)=>{
if(err){
reject(err)
}
else {
this.dbClient = client.db(config.dbName);
resolve(this.dbClient)
} });
}
else resolve(this.dbClient)
})
}
insert(collectionName,json){
return new Promise((resolve,reject)=>{
this.connect().then((dbClient)=>{
dbClient.collection(collectionName).insertOne(json,(err,data)=>{
if(err){
reject(err);
return false
}
resolve(data);
});
})
})
}
remove(collectionName,json){
return new Promise((resolve,reject)=>{
this.connect().then((dbClient)=>{
dbClient.collection(collectionName).remove(json,(err,data)=>{
if(err){
reject(err);
return false
}
resolve(data);
});
})
})
}
update(collectionName,wjson,ujson){
return new Promise((resolve,reject)=>{
this.connect().then((dbClient)=>{
dbClient.collection(collectionName).update(wjson,ujson,(err,data)=>{
if(err){
reject(err);
return false
}
resolve(data);
});
})
})
}
find(collectionName,json){
return new Promise((resolve,reject)=>{
this.connect().then((dbClient)=>{
let result = dbClient.collection(collectionName).find(json);
result.toArray((err,data)=>{
if(err){
reject(err);
return false
}
resolve(data);
})
})
})
} }
module.exports = MgondoDb.getInstance();
这样封装之后,MongoDB就处于长链接状态了,除了第一次操作数据库的时候会比较好时间而已,剩下操作数据库的时候,时间就会提升100倍以上,赶快器试试吧!
mongoDb性能提升的更多相关文章
- 云 MongoDB 优化让 LBS 服务性能提升十倍
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 随着国内服务共享化的热潮普及,共享单车,共享雨伞,共享充电宝等各种服务如雨后春笋,随之而来的LBS服务定位问题成为了后端服务的一个挑战.M ...
- 在MongoDB中创建一个索引而性能提升1000倍的小例子
在https://www.cnblogs.com/xuliuzai/p/9965229.html的博文中我们介绍了MongoDB的常见索引的创建语法.部分同学还想看看MongoDB的威力到底有多大,所 ...
- MongoDB 性能优化五个简单步骤
MongoDB 一直是最流行的 NoSQL,而根据 DB-Engines Ranking 最新的排行,时下 MongoDB 已经击败 PostgreSQL 跃居数据库总排行的第四位,仅次于 Oracl ...
- 必看!如何让你的LBS服务性能提升十倍!
本文由云+社区发表 作者:腾讯云数据库团队 随着国内服务共享化的热潮普及,共享单车,共享雨伞,共享充电宝等各种服务如雨后春笋,随之而来的LBS服务定位问题成为了后端服务的一个挑战.MongoDB对LB ...
- 极速Node.js:来自LinkedIn的10个性能提升秘籍
from:http://faylai.iteye.com/blog/1293194 1.避免使用同步的方法 nodejs 是基于单线程.为了让单线程能够处理高并发的请求,我们尽量要避免让线程等待,阻塞 ...
- Mongodb性能调优
摘要 1. Mongodb 适用场景简介 2. Mongodb 性能监控与分析 3. Mongodb 性能优化建议 关于Mongodb的几个大事件 1.根据美国数据库知识大全官网发布的DB热度排行,M ...
- SQL Server 2014里的性能提升
在这篇文章里我想小结下SQL Server 2014引入各种惊艳性能提升!! 缓存池扩展(Buffer Pool Extensions) 缓存池扩展的想法非常简单:把页文件存储在非常快的存储上,例如S ...
- MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划
这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存 ...
- mapreduce性能提升2
mapreduce性能提升2mapreduce性能提升2mapreduce性能提升2
随机推荐
- idea新建maven项目后生成web.xml方法和添加到tomcat方法
idea新建maven项目后生成web.xml方法和添加到tomcat方法 参考:https://www.cnblogs.com/Liang-Haishan216/p/9302141.html 1.首 ...
- 二十一、NFS服务
文件系统是基于存储设备的,比如硬盘,并且包含文件物理位置的维护.文件系统也可以说是虚拟数据或网络数据存储的方法,比如NFS.我是这样理解的:首先,什么是文件系统,这里我们已经明确了,就是组织的一种形式 ...
- python--包package、模块module、类Class、Mixin类(未完成)
包package>模块module>类Class(包含了属性.方法.实例等概念) 模式一:一个包下面有多个py文件,即多个模块module 模式二:一个包下面包含多个子包packages ...
- [Machine Learning] Andrew Ng on Coursera (Week 1)
Week 1 的内容主要有: 机器学习的定义 监督式学习和无监督式学习 线性回归和成本函数 梯度下降算法 线性代数回归 主要是了解一下机器学习的基本概念,重点是学习线性回归模型,以及对应的成本函数和梯 ...
- 12款优秀的 JavaScript 日历和时间选择控件
这些插件能够帮助 Web 开发人员更快速的实现各种精美的日历和时间选择效果. 1. The Coolest Calendar 界面非常漂亮的一款日期选择插件,有详细的使用文档,最新版本 1.5. 点 ...
- CentOS换yum源和epel源为国内源
CentOS换源 YUM源 备份原来的repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bac ...
- 林轩田机器学习基石笔记1—The Learning Problem
机器学习分为四步: When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can Machine Lear ...
- Java的同步和异步
同步:发送一个请求,等待返回,然后再发送下一个请求 异步:发送一个请求,不等待返回,随时可以再发送下一个请求 同步可以避免出现死锁,读脏数据的发生,一般共享某一资源的时候用,如果每个人都有修改权限,同 ...
- PHP 错误与异常的日志记录
提到 Nginx + PHP 服务的错误日志,我们通常能想到的有 Nginx 的 access 日志.error 日志以及 PHP 的 error 日志.虽然看起来是个很简单的问题,但里面其实又牵扯到 ...
- Mac-常用命令与快捷键
阅读更多 1.1 brew 格式: brew install <software> brew uninstall <software> brew update <soft ...