1. 安装mongoDB
cnpm install --save-dev mongodb
2. 创建数据库
创建链接池 > 选择数据库 > 创建集合
// 引入mongodb驱动
var MongoClient = require('mongodb').MongoClient;
// 引入 mongodb服务器地址
var url = "mongodb://localhost:27017/runoob";
//创建链接池
MongoClient.connect(url, { useNewUrlParser: true }, function(err, monclient) {
if (err) throw err;
console.log("数据库已创建!");
//选择数据库 dbbaseName
let dbbase = monclient.db("user");
//创建集合
dbase.createCollection(collectionName, function (err, res) {
if (err) throw err;
console.log("创建 集合!");
monclient.close();//关闭服务器
});
//删除集合
dbase.collection(collectionName).drop(function(err, delOK) {
// 执行成功 delOK 返回 true,否则返回 false
if (err) {throw err;}
if (delOK) {console.log("集合已删除");}
db.close();
});
//***************进行3.数据操作+monclient.close();*****************//
});
3 .数据操作
查询数据find 排序数据sort
let pro = {name: new RegExp(/豆/)}
let sort = {age: -1}
dbbase.collection(collectionName).find(pro).sort(sort).toArray((err, result) => { //返回集合中所有数据
if (err) {throw err;}
callback(result);//返回查询的数据
client.close();
});
插入数据
var data = {a:"",b:""}
dbbase.collection(collectionName).insertOne(data,(err,result)=>{
if (err) {throw err;}
callback(data.result.ok);//返回修改的数据数量
monclient.close();
});
dbbase.collection(collectionName).insertMany(data,(err,result)=>{
if (err) {throw err;}
callback(data.result.ok);//返回修改的数据数量
monclient.close();
});
更新数据
let pro = { name: "李四"}
let set = {$set: { sex: "女", age: 8 }}
dbbase.collection(collectionName).updateOne(pro, set, (err, data) => {
if (err) {throw err;}
callback(data.result.ok);//返回修改的数据数量
client.close();
});
dbbase.collection(collectionName).updateMany(pro, set, (err, data) => {
if (err) {throw err;}
callback(data.result.ok);//返回修改的数据数量
client.close();
});
删除数据
dbbase.collection(collectionName).deleteOne(trem, (err, data) => {
if (err) {throw err;}
callback(data.result.ok);//返回修改的数据数量
client.close();
});
dbbase.collection(collectionName).deleteMany(trem, (err, data) => {
if (err) {throw err;}
callback(data.result.ok);//返回修改的数据数量
client.close();
});
查询分页
dbbase.collection(collectionName).find(pro).skip(skip).limit(limit).toArray((err, data) => {
if (err) {throw err;}
callback(data);//返回查询数据
client.close();
});
4 . 封装 数据操作 模块
调用 查询模块
//引入 mongodb 封装模块
let mongo = require("./mongoDBModule");
router.get("/find", (req, res) => {
mongo.findCollection("user", { name: new RegExp(/豆/) }, { age: 1 }, (data) => {
console.log(data);
});
res.send("查询集合");
});
封装 查询模块
module.exports = {
findCollection(collectionName, obj, sort, callback) {
mongoConnect((client, dbbase) => {
dbbase.collection(collectionName).find(obj).sort(sort).toArray((err, data) => {
if (err) {throw err;}
callback(data);//返回查询数据
client.close();
});
});
}
}