MongoDB
MongoDB是一个基于分布式文件存储的数据库。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB安装
MongoDB安装比较简单,直接在官网下载最新的安装包解压到本地,配置好环境变量之后,命令行启动:
mongond --dbpath D:\MongoDB\data\db //-dbpath 后面是data的db文件夹
启动服务后,新增命令行mongo
就可以进行数据操作。
MongoDB服务配置
在data
文件夹下新建db
和log
文件夹,创建一个配置文件。
systemLog:
destination: file
path: D:\MongoDB\data\log\mongod.log
storage:
dbPath: D:\MongoDB\data\db
安装MongoDB服务
mongod --config "D:\MongoDB\mongod.cfg" --install
MongoDB基本操作
在这里用Robo 3T 可视化数据。命令行mongo
可启动MongoDB服务,然后出现类似Node的操作界面。
我们可以在上面进行数字的加减乘除。
use DATABASE_NAME //创建数据库
show dbs //查看所有数据库
db.dropDatabase() // 删除当前状态下的数据库
db.collection.drop() // 删除当前状态下的数据库集合
db.COLLECTION_NAME.insert(document) //使用insert或save()插入文档
db.collection.update(
,
,
{
upsert: ,
multi: ,
writeConcern:
}
) //更新已有文档
db.collection.remove(
,
{
justOne: ,
writeConcern:
}
) //删除文档
db.collection.find(query, projection) //查询文档
MongoDB还有许多高级特性,这里不作列举,主要是介绍Node.js连接MongoDB。
创建数据库
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/table';
MongoClient.connect(url,function (err, db) {
if(err) throw err ;
console.log("数据库已创建!")
db.close();
})
创建集合
const MongoClient = require('mongodb').MongoClient;
consturl = "mongodb://localhost:27017/table";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
db.createCollection("row", function(err, res) {
if (err) throw err;
console.log("创建集合!");
db.close();
});
});
插入数据
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/example';
const insertData = function (db, callback) {
const collection = db.collection('table');
const data = [{"name":"刘佳伦","age":27,"sex":"man"},{"name":"gallon","age":25,"sex":"man"}];
collection.insert(data,function (err,res) {
if(err){
console.log('Error' + err);
return
}
callback(res);
})
};
MongoClient.connect(url,function (err, db) {
console.log('连接成功!')
insertData(db,function (res) {
console.log(res);
db.close();
});
});
插入成功后在数据中显示
该代码是在mongdb 2.2.33版本下进行的,高版本有点
api
发生变化,注意关注官方文档。
查询数据
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/example';
const selectData = function(db, callback) {
//连接到表
const collection = db.collection('table');
//查询数据
const whereStr = {"name":'刘佳伦'};
collection.find(whereStr).toArray(function(err, result) {
if(err){
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(url, function(err, db) {
console.log("连接成功!");
selectData(db, function(result) {
console.log(result);
db.close();
});
});
查得数据为:
更新数据
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/example';
const updateData = function(db, callback) {
//连接到表
const collection = db.collection('table');
//更新数据
const whereStr = {"name":'刘佳伦'};
const updateStr = {$set: { "introduce" : "美貌才华与一身" }};
collection.update(whereStr,updateStr, function(err, result) {
if(err){
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(url, function(err, db) {
console.log("连接成功!");
updateData(db, function(result) {
console.log(result);
db.close();
});
});
更新数据得:
删除数据
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/example';
const delData = function(db, callback) {
//连接到表
const collection = db.collection('table');
//删除数据
const whereStr = {"name":'刘佳伦'};
collection.remove(whereStr, function(err, result) {
if(err){
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(url, function(err, db) {
console.log("连接成功!");
delData(db, function(result) {
console.log(result);
db.close();
});
});
删除数据