博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记学习node使用mongoDB
阅读量:5254 次
发布时间:2019-06-14

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

1.先解决多次实例不共享的问题

static getInstance () { // 解决多次实例不共享的问题    if (!DB.instance) {        DB.instance = new DB()    }    return DB.instance}constructor () {    this.dbClient = "" //放db对象    this.connect() // 实例化的时候就连接数据库}

2.连接数据库

  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)            }        })    }

3.常用操作

  1.格式化_id

getObjectId (id) { // mongo里面查询_id        return new objectId(id)    }

  2.单表查询

  find (collectionName, json, sort) {        return new Promise ((resolve, reject) => {            this.connect().then((db) => {                var res = db.collection(collectionName).find(json).sort(sort)                res.toArray((err, doc) => {                    if (err) {                        reject(err)                        return                    }                    resolve(doc)                    // console.log(doc)                })            })        })    }

  3.单表单条更新

update (collectionName, json1, json2) {        return new Promise ((resolve, reject) => {            this.connect().then((db) => {                // })                db.collection(collectionName).updateOne(json1, {                    $set: json2                }, (err, res) => {                    if (err) {                        reject(err)                    } else {                        resolve(res)                    }                })            })        })    }

  4.单表单条插入

  

insertOne (collectionName, json) {        return new Promise ((resolve, reject) => {            this.connect().then((db) => {                db.collection(collectionName).insertOne(json, (err, res) => {                    if (err) {                        reject(err)                    } else {                        resolve(res)                    }                })            })        })    }

  5.单表单条删除

remove (collection, json) {        return new Promise ((resolve, reject) => {            this.connect().then((db) => {                db.collection(collectionName).removeOne(json, (err, res) => {                    if (err) {                        reject(err)                    } else {                        resolve(res)                    }                })            })        })    }

  6.多表联动查询(研究中)

转载于:https://www.cnblogs.com/wylj/p/11338809.html

你可能感兴趣的文章
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
【欧拉函数模板题】最大公约数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
织梦仿站第三课:网站的文件分割
查看>>
Windows 2003全面优化
查看>>
URAL 1002 Phone Numbers(KMP+最短路orDP)
查看>>
web_day4_css_宽度
查看>>
用sql删除数据库重复的数据的方法
查看>>
学习笔记21—PS换图片背景
查看>>
electron入门心得
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
Spring3.0 AOP 具体解释
查看>>
我的Hook学习笔记
查看>>
EasyUI DataGrid 中字段 formatter 格式化不起作用
查看>>
海量数据存储
查看>>