Mongodb下载和使用nodejs联合

 1.下载Mongodb

下载地址:MongoDB Community Download | MongoDB

 

windows系统使用这个配置就可以 ,下载下来直接打开一直点下一步即可。

2.配置Mongodb到环境变量

 

 找到Mongodb的bin目录,配置这个目录到环境变量的path路径下。

 

 在控制台中输入 mongod --version,显示以下画面就说明配置成功

 

3. 配置Mongodb的配置文件

打开bin目录下的mongod.cfg文件

 可以在里面配置默认的数据库地址和端口以及IP,这样子在控制台输入mongod就会启动默认的数据库地址。

也可以使用这条命令启动这个配置文件的服务

mongodb --config  'C:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg'

如果怕麻烦也可以注册成一个服务,这样每次开机就会自动启动。

 mongodb --config  'C:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg' --serviceName 'MongoDB' --install

 4.Mongodb和Nodejs结合

 这里使用koa2作为例子:

  

const mongoose = require('mongoose');
const {getMeta,preSave}  = require('../helpers')
//首先创建UserShema 相当于一个模板 以后创建的记录都以这个为模板
const UserSchema = new mongoose.Schema({
    account: String,
    password:String,
    character:String, // 文案 类型 权限
    companyName:String,
    meta:getMeta()
  
});
//每次保存之前要执行的
UserSchema.pre('save',preSave)
//将这个Shema注册为模型
mongoose.model('User',UserSchema)
const mongoose = require("mongoose");
//每次链接数据库之前都要注册一下schema
require('./schemas/user');
require('./schemas/InviteCode');
require('./schemas/Order');
require('./schemas/Goods');
require('./schemas/InventoryLog')
require('./schemas/customer')
require('./schemas/character')
require('./schemas/Log')
require('./schemas/LogResponse')
require('./schemas/ForgetPassword')
require('./schemas/GoodsClassify')
require('./schemas/message')
const connect = () => {
  //去链接数据库
  return new Promise((resolve) => {
    mongoose.connect("mongodb://127.0.0.1:27017/water-mgr", {
      useNewUrlParser: true,
      useCreateIndex: true,
      useUnifiedTopology: true
    });
    mongoose.connection.on("open", () => {
      resolve();
    });
  });
};

module.exports = {
  connect,
};
//在最外层的index.js中 先链接数据库再执行中间件
connect().then(() => {
  app.use(cors())
  //app.use(koaBody({ multipart: true }))
  app.use(bodyParser()); 
  app.use(catchTokenError)
  jwtMiddleWare(app)
  
  app.use(checkUser)

 
  app.use(logMiddleWare)
  //对路由进行注册
  registeRoutes(app);

  
  app.listen(config.PORT, () => {
    console.log("启动成功");
  });
});
//查找
const User = mongoose.model("User");
 //返回指定字段有三种方式
    //1.userId userName userEmail state role deptId roleList
    //2.{'userId'}:1 1返回
    //3. findOne().select('userId')
    const res = await User.findOne({
       userName,
       userPwd
    },'userId userName userEmail state role deptId roleList')
//删除
 const delMsg = await User.deleteOne({
    _id: id,
  });
//增加需要先new一个出来
  const user = new User({
    account,
    password: password || config.DEFAULT_PASSWORD,
    character,
  });

  const res = await user.save();
//更新
//只更新一条记录 
db.user.update( { "grade" : { $gt : 100 } } , { $set : { "mark" : "优"} } );
db.user.update( { "grade" : { $gt : 80 } } , { $set : { "mark" : "良"} },false,true ); //更新全部 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值