1.下载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 ); //更新全部