菜鳥教程: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