菜鸟教程:https://www.runoob.com/mongod...
express:https://www.expressjs.com.cn/
mongoose:http://www.mongoosejs.net/javascript
github:https://github.com/nowRookie/...html
一、mongodb下载地址:https://www.mongodb.com/try/d...
二、mongodb下载须要访问外网,推荐使用Ghelper的google插件
三、安装过程必定不要勾选install mongodb compass,图形工具,不然会很慢
四、配套使用的图形工具,我选择的robo3T,下载地址https://robomongo.org/
五、设置环境变量,E:\mongodb\binjava
新建一个.bat后缀的文件,内容以下node
E: cd E:\mongodb\bin start mongod --dbpath=E:\mongodb\data D: cd D:\360download\Robo 3T 1.3.1 start robo3t.exe
一、新建文件夹express
二、npm init,一直回车,初始package.json
三、修改package.json,安装对应的包
四、这里必定要安装最新的babel相关的包@babel,不然项目中使用某些es6新特性还不支持,如{...}git
"name": "app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "nodemon --exec babel-node ./app.js"//项目热更新 }, "author": "", "license": "ISC", "dependencies": { "@babel/cli": "^7.12.1", "@babel/core": "^7.12.3", "@babel/node": "^7.12.6", "@babel/preset-env": "^7.12.1", "asyncro": "^3.0.0", "body-parser": "^1.19.0", "cookie-parser": "^1.4.5", "cookie-session": "^1.4.0", "cors": "^2.8.5", "express": "^4.17.1", "fs-extra": "^9.0.1", "hbs": "^4.1.1", "lodash": "^4.17.15", "moment": "^2.24.0", "mongoose": "^5.9.9", "multer": "^1.4.2", "nodemon": "^2.0.4", "ueditor": "^1.2.3" } }
{ "presets": [ [ "@babel/preset-env" ] ] }
import express from "express" const app = express() import path from "path" import { port } from "./config" // cors跨域处理 import cors from "cors" app.use(cors()) // body-parser中间件 import bodyParser from 'body-parser' app.use(bodyParser.json()) // middleware打印log信息 import log from "./middleware/log" app.use(log()) // 静态资源 app.set('view engine', 'hbs') app.set("views", process.cwd() + "/hbs") app.use(express.static("static")) app.use(express.static("uploads")) app.use("/virtual", express.static(path.join(__dirname, "static"))) // 路由 import router from "./router/index" router(app) // ueditor百度文本编辑框 import ueditor from "./plugins/ueditor.js" ueditor(app) // mongoose链接 import mongoose from 'mongoose'; mongoose.set('useFindAndModify', false) mongoose.connect('mongodb://localhost/websiteDB', { useNewUrlParser: true, useUnifiedTopology: true }); // db数据库 const db = mongoose.connection; db.on('error', () => console.error('connection error:')); db.once("open", () => { app.listen(port, () => console.log(`Example app listening on port ${port}!`)) })
mongoose主要有两样东西scehma、model
咱们能够新建一个文件userModel.jses6
const mongoose = require("mongoose") let Schema = mongoose.Schema({ username: { type: String, required: true, }, password: { type: String, required: true, minLength: 6, maxLength: 20, validate: { validator: (value) => { return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(value) }, message: "tags 必填" } } }, { collection: "users", minimize: false,//将会保存空对象 timestamps: { createdAt: 'createTime', updatedAt: "updateTime" } }) let Model = mongoose.model("users", Schema) export default Model
至此就能够经过Model去操做数据库了
配合上express的话
新建一个userRouter.jsgithub
import express from "express" const eRouter = express.Router() import userModel from "../model/userModel" eRouter.route("/api/users") .get((req, res,) => { userModel.find(req.query, (dbErr, dbRes) => { if (dbErr) return res.status(500).send({ code:201, message: "数据库查询错误" }) res.send(dbRes) }) }) export default eRouter
最后在app.js当中引入web
app.use("/", userRouter)
//dbName:数据库名称 use dbName //建立数据库 //sheetName:表名称 db.sheetName.insert({}) //插入数据,mongo会自动带上一个_id的标识符 db.sheetName.find() //查询 db.sheetName.find(id : {$gt : 2}).forEach(printjson) //$gt大于,printjson打印 db.sheetName.sort({keyName : -1}) //按照keyName降序排列 db.sheetName.find().limit(2) //限制查询条数为2条 db.sheetName.count() //计数 db.sheetName.remove({}) //删除所有 db.sheetName.update({id : 1},{$set:{keyName : newVal}}) //更新id为1的数据,$set设置新的value //建立admin用户 db.createUser( user : "admin",pwd : "admin", roles : [ {role : "userAdminAnyDataBase",db : "admin"} ] ) db.createUser( user : "username",pwd : "123456", roles : [ {role : "userAdmin",db : "employee"} ] ) //role能够为 userAdminAnyDataBasr userAdmin read readWrite
mongodump.exe 备份程序
mongostat.exe 监控服务器发生的增删改查
mongotop.exe 跟踪报告读写活动
ServerStatus 返回数据库状态,包括磁盘使用,内存mongodb