在node中使用MonoDB实现增删改查
步骤一:
创建数据库;
步骤二:
node中使用
1.下载monodb由于在整个node项目中都会使用故在package.json中配置
npm install mongodb --save
2.使用:
公共步骤:
//1.导入模块
var mongodb = require('mongodb');
//2.设置连接路径
/**确保开启了mongodb数据服务
*/
var url = 'mongodb://127.0.0.1:27017/vue2';//其中vue2是你创建的数据库的名字。
//3.创建客户端(mongod相当于服务器,监听27017端口。 mongo相当于客户端,连接端口号开启数据库)var MongoClient = mongodb.MongoClient;
数据库操作:
var mongodb = require('mongodb');
//2.设置连接路径
/**确保开启了mongodb数据服务
*/
var url = 'mongodb://127.0.0.1:27017/vue2';//其中vue2是你创建的数据库的名字。
//3.创建客户端(mongod相当于服务器,监听27017端口。 mongo相当于客户端,连接端口号开启数据库)var MongoClient = mongodb.MongoClient;
数据库操作:
// 1. 插入数据,和终端命令一致
MongoClient.connect(url, function (err, db) {
if (err) {
throw new Error('连接失败');
}
/* 回调函数中的result参数返回的是当前插入的这条数据的结果,ops键对应的就是插入的数据,相当于条件查询的结果*/
db.collection('heros').insert({ name: '张飞', gender: '男', age: 23 }, function (err, result) {
if (err) {
throw new Error('插入数据失败');
}
console.log(result);
// 3. 关闭链接。
db.close();
}); //插入多条使用collection.insertMany()
});
if (err) {
throw new Error('连接失败');
}
/* 回调函数中的result参数返回的是当前插入的这条数据的结果,ops键对应的就是插入的数据,相当于条件查询的结果*/
db.collection('heros').insert({ name: '张飞', gender: '男', age: 23 }, function (err, result) {
if (err) {
throw new Error('插入数据失败');
}
console.log(result);
// 3. 关闭链接。
db.close();
}); //插入多条使用collection.insertMany()
});
2.查询
//2.1.连接数据库
MongoClient.connect(url, function (err, db) {if (err) {
throw new Error('连接失败');
}
// 查询所有
db.collection('heros').find().toArray(function (err, docs) {if (err) {
throw new Error('查询数据失败');
}
console.log(docs);
});
// 按条件查询
db.collection('heros').find({name: '张飞'}).toArray(function (err, docs) {if (err) {
throw new Error('查询数据失败');
}
console.log(docs);
});
});
3.更新数据
//3.1.连接数据库
MongoClient.connect(url, function (err, db) {if (err) {
throw new Error('连接失败');
}
//3.2.更新数据 updateOne方法只能更新找到的第一条记录
db.collection('heros').updateOne({name: '张飞'}, {$set: {
age: 20
}
}, function (err, result) {
if (err) {
throw new Error('更新失败');
}
console.log(result);
});
//3.3.更新多条数据 1.update方法 2.设置允许修改多条数据multi属性为true(默认为false)
db.collection('heros').update({name: '张飞'}, {$set: {
age: 20
}
},{multi:true}, function (err, result) {
if (err) {
throw new Error('更新失败');
}
console.log(result);
});
});
4.删除数据
//4.1.连接数据库
MongoClient.connect(url, function (err, db) {if (err) {
throw new Error('连接失败');
}
db.collection('heros').deleteMany({name: '鲁班'}, function (err, result) {
if (err) {
throw new Error('删除失败');
}
console.log(result);
});
//如果想要删除多个使用deleteMany()方法(相当于更新的multi,会删除所有找到的记录)
});操作数据库增删改查一般分为三步
1.连接数据库
2.执行增删改查工作
3.关闭数据库
一般只有在改变数据库的数据时才需要关闭,增删改查中查询操作没有改变数据库数据可以省略这一步关闭数据库的作用:
(1)节省性能
(2)多线程同时操作数据库时一个线程中打开未关闭,另一个现场打开则会报错
理论上来讲,nodejs时单线程的,所以不关闭也不会有什么问题
理论上来讲,nodejs时单线程的,所以不关闭也不会有什么问题