最近学习了 nodejs 的后台服务开发,需要用到数据库,这里选择的是 mongodb(非关系型数据库),下面对 MongoDB的使用过程进行一个简单的总结,作为想学习笔记。
【MongoDB终端使用:】
1.首先是安装好 MongoDB,按照教程,MongoDB下可以看到 3个文件夹 bin, data, log
2.Windows键 + R
运行 cmd
打开命令终端,切换到 MongoDB的bin目录下,运行mongod --dbpath F:\MongoDB\data\db
打开 mongodb
3.另起一个终端,运行 mongo
连接数据库,mongodb://127.0.0.1:27017
就是数据库的url
4.下面就可以在终端对mongodb进行常规的增删改查的一系列操作,我就列举一下不做截图展示了
show dbs //显示所有的数据库
use dbname //使用数据库 ,创建数据库
db.dropDatabase() // 删除当前所在数据库
show collections //显示选中数据库的所有集合(表)
db.collectionname.drop() //删除当前指定的集合(表)
db.collectionname.find() // 查找数据
db.collectionname.insert({ "xxx":"xxx" , ...}) //插入数据
db.collectionname.update({ olddata},{ $set: newdata}) //更新修改数据
db.collectionname.remove({"xxx":"xxx"}) //删除表中的某条数据
【nodejs下操作mongodb】
(1) 安装 mongodb npm install mongodb --save
(2) 新建一个 db.js
用来封装 对 mongodb的增删改查操作
(3)连接数据库之前,先做一些基本的配置:
var MongoClient = require('mongodb').MongoClient; //引入
var dburl = 'mongodb://127.0.0.1:27017/'; // 配置数据库的 url
var dbname = 'product'; // 配置将要连接的数据库名称
(4)连接数据库:
function connectDB(callback){
MongoClient.connect( dburl , (err, client)=>{
if(err){
console.log(err);
return;
}else{
var db = client.db(dbname);
callback(db);
client.close(); //别忘了关闭数据库
}
})
}
【这里需要注意 mongodb的版本是 3.x 所以比之前多了一步设置 client来连接数据库】
由于 连接数据库又是在 操作数据库之前的必须的,所以把连接数据库操作单独封装,通过设置 回调函数 callback
来返回结果
(5) 管理数据库,增删改查【这里只是使用的最简单常用的方式,具体的还可以去看官方网文档】
// 查询数据库
exports.find = (collectionname,json,callback)=>{
connectDB( db => {
var result = db.collection(collectionname).find(json);
/** 遍历数组的一种方式 */
result.toArray( (err,data) =>{
callback(err,data);
})
})
}
// 插入数据 insertOne
exports.insert = (collectionname,json,callback)=>{
connectDB( db =>{
db.collection(collectionname).insertOne(json,(err,data)=>{
callback(err,data);
})
})
}
// 修改更新数据 updataOne
exports.update = (collectionname,json1,json2,callback)=>{
connectDB( db =>{
db.collection(collectionname).updateOne(json1,{$set:json2},(err,data)=>{
callback(err,data);
})
})
}
// 删除数据 deleteOne
exports.deleteOne = (collectionname,json,callback)=>{
connectDB( db=>{
db.collection(collectionname).deleteOne(json,(err,data)=>{
callback(err,data);
})
})
}