在 Nodejs 中使用 MongoDB

需要引包:

1
npm install mongodb --save-dev

Nodejs 连接 MongoDB 数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var express = require("express");
//数据库引用
var MongoClient = require('mongodb').MongoClient;
var app = express();
//数据库连接的地址,最后的斜杠表示数据库名字
var shujukuURL = 'mongodb://localhost:27017/news';
app.get("/",
function(req, res) {
//连接数据库,这是一个异步的操作
MongoClient.connect(shujukuURL,
function(err, db) {
res.writeHead(200, {
"Content-Type": "text/html;charset=UTF8"
});
if (err) {
res.send("数据库连接失败");
return;
}
res.write("恭喜,数据库已经成功连接 \n");
db.collection("user").insertOne({
"name": "哈哈"
},
function(err, result) {
if (err) {
res.send("数据库写入失败");
return;
}
res.write("恭喜,数据已经成功插入");
res.end();
//关闭数据库
db.close();
});
});
});
app.listen(8020);

Nodejs 查找 MongoDB 数据库集合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
MongoClient.connect(dbUrl,
function(err, db) {
if (err) {
/*数据库连接失败*/
console.log('数据库连接失败');
return;
}
var result = [];
var userRel = db.collection('user').find();
//res.send(userRel);
userRel.each(function(err, doc) {
if (err) {
res.write("游标遍历错误");
return;
}
if (doc != null) {
result.push(doc);
} else {
console.log(result);
//遍历完毕
db.close();
res.render("index", {
"result": result
});
}
});
})

Nodejs 给 MongoDB 增加数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
MongoClient.connect(dbUrl,
function(err, db) {
if (err) {
return
}
db.collection('user').insertOne({
"name": name,
"age": age,
"score": {
"shuxue": shuxuechengji,
"yuwen": yuwenchengji
}
},
function(err, result) {
if (err) {
console.log('写入数据失败');
}
//关闭数据库
db.close();
//res.redirect('/add');
res.redirect('/');
/*路由跳转*/
res.end();
////res.location('/add')
})
})

Nodejs 修改 MongoDB 数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MongoClient.connect(dbUrl,
function(err, db) {
if (err) {
console.log('数据库连接错误');
return;
}
db.collection('user').updateOne({
"_id": ObjectID(id)
},
{
"name": name,
"age": age,
"score": {
"shuxue": shuxue,
"yuwen": yuwen
}
},
function(err, results) {
console.log(results);
db.close();
res.redirect('/');
/*路由跳转*/
res.end('end');
})
})

Nodejs 删除 MongoDB 数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MongoClient.connect(dbUrl,
function(err, db) {
if (err) {
throw new Error("数据库连接失败");
return;
}
db.collection('user').deleteOne({
"_id": ObjectID(id)
},
function(error, result) {
if (error) {
throw new Error('删除数据失败');
return;
}
db.close();
res.redirect('/');
/*路由跳转*/
})
})