用过node的小伙伴应该都会知道mongodb,下面的是最简单的增删改查操作。
1. app.jsvar express = require('express')
var app = express()
var db = require('./model/db.js') // 数据库操作
// 访问路由对应操作
app.listen()复制代码
2. module/db.js 这里封装了对数据库的基本操作
let MongoClient = require('mongodb').MongoClient;
// 封装内部函数 连接数据库
_connectDB = (callback) => {
let url = 'mongodb://localhost:27017/Model';
MongoClient.connect(url, (err,db) => {
if(err) {
callback(err,null)
db.close()
return;
}
callback(err,db)
})
}复制代码
封装新增数据函数
exports.insertOne = (collectionName, json, callback) => {
// 连接数据库成功之后回调插入数据
_connectDB((err,db) => {
// 插入数据后回调参数 再传递回给形参
db.collection(collectionName).insertOne(json, (err, result) => {
callback(err, result)
// 每次操作完毕记得关闭数据库
db.close()
})
})
}
复制代码
封装删除数据函数
exports.deleteMany = (collectionName,json,callback) => {
_connectDB((err,db) => {
// 选择集合 删除具体的一条数据
db.collection(collectionName).deleteMany(
json,
(err,results) => {
callback(err,result);
db.close()
})
})
}复制代码
封装修改数据函数
exports.updateMany = (collectionName, json1, json2, callback) => {
// 选择具体集合 json1: 要修改的旧数据 json2: 修改成什么样
_connectDB((err,db) => {
json1,
json2,
(err,result) => {
callback(err, results)
db.close()
}
})
}复制代码
最后的就查找数据函数
exports.find = (collectionName,json,C,D) => {
// 列表名称 查找条件 分页查询 回调函数
let result = []
// 不传第三个参数的时候,默认查询全部 如果全部参数都传了,就按照条件查询
if(arguments.length == ) {
let callback = C
let skipnumber =
let limit =
} else if(arguments.length == ){
let callback = D
let args = C
// 忽略数量 = 每页显示多少条 * 当前页数
let skipnumber = args.pageamount * args.page ||
let limit = args.pageamount || // 数目限制显示多少条
let sort = args.sort || {} // 排序方式
} else {
throw new Error('find函数的参数个数,必须是三个或者四个')
return;
}
_connectDB((err,db) => {
// 创建新游标
let cursor = db.collection(collactionName).find(json).skip(skipnumber).limit(limit).sort(sort);
cursor.each((err,doc) => {
if(err) {
callback(err,null)
db.close()
return;
}
// 判断 doc 是否有效 无效的话就是遍历结束了 那就返回查询到的全部数据
if(doc != null) {
result.push(doc)
} else {
callback(null,result)
db.close()
}
})
})
}复制代码
3. app.js 完善逻辑
app.get("/", (req,res) => {
// 每访问一次这个页面 就在 Model 数据库下的 student 集合下新增一条数据
db.insertOne("student", {"name": "小白"}, (err, result) => {
if(err) {
consoel.log('插入失败')
return;
}
res.send('插入数据成功')
})
})
app.get("/read", (err, res) => {
// 这个页面接收地址栏接收一个 page 参数
let page = parseInt(req.query.page)
// json为空默认查找全部
db.find("student",{},{"pageamount": 3, "page": page},(err,result) => {
res.send(result)
})
})
app.get("/delete", (err, res) => {
let _name = req.query.name
// 根据接收到 name 删除对应的数据
db.deleteMany("student", {"name": _name},(err, result) => {
if(err) {
console.log(err)
}
res.send(reult)
})
})
app.get("/update", (req,res) => {
// 三个参数 => 集合 要修改的 修改成
db.updateMany(
"student",
{"name": "小白"},
{$set: {name: "大白"}}
(err,result) => {
if(err) {
console.log(res)
}
res.send(result);
})
})
复制代码
4. 启动数据库 比如我的数据库文件夹在Mondodb
5. 再新开一个cmd 对数据库进行查看mongo.exe // 进入mongodb环境
show dbs // 查看全部数据库
use Model // 使用Model数据库
show collections // 查看Model数据库的全部集合
db.student.find() // 查看student集合的数据,在访问页面后就会数据就会写入这个集合
复制代码
转载于:https://juejin.im/post/5c4fbebe518825260c5d22fa