zoukankan      html  css  js  c++  java
  • node+egg中mongdb的一些知识点

    在nodeJS中使用egg和mongdb遇到不少问题,今天简单记录下来

    1.数据库连接配置文件

     参数说明:


    url: '',   // 你的数据库地址,不需要端口号

    options:可配置化参数

           user:username // 用户名

       pass:password// 数据库密码

          autoIndex:false/ture // 默认是true 默认情况下,mongoose 在连接时会自动建立 schema 的索引。这有利于开发,但是在大型生产环境下不是十分理想,因为索引建立会导致性能下降。如果 autoIndex 设为 false,mongoose 将不会自动建立索引

         auto_reconnect:boolean;// 底层mongdb链接丢失时自动连接触发

      poolSize:5// 最大的socket链接数,默认是5

         connectTimeoutMS:// 链接超时间
         socketTimeoutMS :// socket链接超时
        useNewUrlParser:boolean //  验证您传入的连接字符串实际上符合新解析器的预期。  
      useUnifiedTopology: true, 使用新的服务器发现和监视引擎
    注意一下:这里使用的是egg-mongoose 来链接数据库的 参考参数
     

    一般框架中为了更加安全,我们一般把数据库的配置文件单独存在config目录中,根据项目开发环境配置不同的服务器,通常设置一下文件

    config.default.js  //公共配置文件

    config.dev.js   //开发环境配置文件

    config.prod.js //线上生产环境配置文件

    config.local.js // 本地配置文件

    一般安全较高的项目只用config.default.js 会提交,而prod一般是由运维人员维护的

    数据库可视化工具  vscode推荐 

    MongoDB for VS Codemongodb.mongodb-vscode
     
    MongoDB Compass 
     
     
    2.数据库表操作:
    一般使用egg框架我们的model层就是对应数据库中的表结构
    new mongoose.Schema({})

    设置主键:

    const EntranceConfigSchema = new mongoose.Schema({})
    EntranceConfigSchema.index({key:1}) //key 你需要的主键

    查询

    Tank.find({ size: 'small' }).where('createdDate').gt(oneYearAgo).exec(callback);
    // 常用的还有findOne() 、findById()
    

      

    更新

    update、

    updateOne
    Tank.update({ size: 'small' })
    

      

    删除 

    Tank.remove({ size: 'small' })
    优秀的人一直在路上,优秀的你一直在尝试写新bug
  • 相关阅读:
    如何用Map对象创建Set对象
    SpringMVC如何接受POST请求中的json参数
    Eclipse启动的时候提示:Failed to load JavaHL Library.
    spring中的scope详解
    synchronized 与 Lock 的那点事
    (转)Lock和synchronized比较详解
    java事件机制
    linux查看内存占用情况
    Linux命令简写和全称
    人类未来思考
  • 原文地址:https://www.cnblogs.com/starryqian/p/14719393.html
Copyright © 2011-2022 走看看