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
原文地址:https://www.cnblogs.com/starryyang/p/14719393.html