nodejs项目实战教程14——nodejs连接MongoDB,实现增删改查
- 1.nodejs连接mongodb
- 2.实现增删改查
- 2.1 查询操作
- 2.2 增加
- 2.3 修改
- 2.4 删除
1.nodejs连接mongodb
1)新建demo17文件夹,npm init -y
生成package.json
2) cnpm install mongodb --save
,下载mongdb依赖
3)创建app.js,在代码中引用mongdb,建立数据库连接:
// 1.cnpm install mongodb --save
// 2.引入mongodb
const { MongoClient } = require("mongodb");
// 3.定义数据库连接地址,admin是账号,123456是密码
// 如果没有账号密码,const url = 'mongodb://localhost:27017/'
const url = 'mongodb://admin:123456@localhost:27017/'
// 4.定义要操作的数据库
const dbName = 'sheldon'
// 5.实例化MongoClient传入数据库连接地址
const client = new MongoClient(url,{useUnifiedTopology:true})
// 6.连接数据库
client.connect((err)=>{
if(err){
console.log(err)
return
}
console.log('连接成功')
const db = client.db(dbName)
// 操作数据库完毕后关闭数据库连接
client.close()
})
2.实现增删改查
为了方便大家了解接下来的操作,先使用cmd查询数据库sheldon下集合student的记录。
2.1 查询操作
// 1.cnpm install mongodb --save
// 2.引入mongodb
const { MongoClient } = require('mongodb')
// 3.定义数据库连接地址,admin是账号,123456是密码
// 如果没有账号密码,const url = 'mongodb://localhost:27017/'
const url = 'mongodb://admin:123456@localhost:27017/'
// 4.定义要操作的数据库
const dbName = 'sheldon'
// 5.实例化MongoClient传入数据库连接地址
const client = new MongoClient(url, { useUnifiedTopology: true })
// 6.连接数据库
client.connect((err) => {
if (err) {
console.log(err)
return
}
console.log('连接成功')
const db = client.db(dbName)
// 操作数据库完毕后关闭数据库连接
// (1)查询
db.collection('student')
.find({})
.toArray((err, data) => {
console.log(data)
client.close()
})
})
注意,因为查询是异步操作,所以需要将client.close()
放入到回调函数中。
如果需要进行条件查询,比如查询名字是lisi的学生,参考如下语句:
// (1)查询
db.collection('student')
.find({ name: 'lisi' })
.toArray((err, data) => {
console.log(data)
client.close()
})
2.2 增加
(1)增加一条记录
将查询语句注释,加入增加语句
// (2)增加
db.collection('student').insertOne(
{ name: 'nodejs操作mongodb', age: '12' },
(err, result) => {
if (err) {
console.log(err)
return
}
console.log('增加成功')
console.log(result)
client.close()
}
)
在cmd中查看:
(2)增加多条记录
let insertObj = [
{ name: 'nodejs操作mongodb', age: '15' },
{ name: 'zhaoyun', age: '16' },
{ name: 'zhangfei', age: '17' },
]
db.collection('student').insertMany(insertObj, (err, result) => {
if (err) {
console.log(err)
return
}
console.log('增加成功')
console.log(result)
client.close()
})
在cmd中:
2.3 修改
(1)修改一条记录
// (3)修改
db.collection('student').updateOne(
{ name: 'zhaoyun' },
{ $set: { age: 18 } },
(err, result) => {
if (err) {
console.log(err)
return
}
console.log('修改成功')
console.log(result)
client.close()
}
)
在cmd中:
(2)修改多条记录
db.collection('student').updateMany(
{ name: 'nodejs操作mongodb' },
{ $set: { age: 21 } },
(err, result) => {
if (err) {
console.log(err)
return
}
console.log('修改成功')
console.log(result)
client.close()
}
)
2.4 删除
(1)删除一条记录
db.collection('student').deleteOne({ name: 'zhaoyun' }, (err) => {
if (err) {
console.log(err)
return
}
console.log('删除一条数据成功')
client.close()
})
(2)删除多条记录
db.collection('student').deleteMany({ name: 'nodejs操作mongodb' }, (err) => {
if (err) {
console.log(err)
return
}
console.log('删除多条数据成功')
client.close()
})