Nodejs 操作 MongoDb 数据库

在 Nodejs 中使用 MongoDB

需要引包:

npm install mongodb --save-dev

Nodejs 连接 MongoDB 数据库

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 数据库集合

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 增加数据

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 数据

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 数据

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('/');
        /*路由跳转*/
    })
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值