博客详情

nodejs之mongodb数据库操作 (原创)

作者: 朝如青丝暮成雪
发布时间:2018-02-24 23:17:34  文章分类:nodejs   阅读(854)  评论(0)

本篇,我们介绍下nodejs中操作mongodb 数据库。

mongodb是一款优秀的NOSQL文档型数据库,适用于并发大,海量数据的存储,与传统关系型数据库相比,它没有复杂的表关系(主外键等),支持的事务也比较脆,很多NOSQL数据库都未提供事务的支持,mongodb仅提供了数据库级别锁。        (此处省略500字......)


mongodb 也提供了nodejs官方驱动 。


04_mongodb.js


//04_mongodb.js
//介绍mongodb api的使用  , CRUD  分页、排序 等。


var mongodb=require("mongodb");
var MongoClient=mongodb.MongoClient;
var ObjectID=mongodb.ObjectID;



var sd = require('silly-datetime');

var dbUrl = "mongodb://localhost:27017/";
var dbName="myDB1";

//插入
function insert() {

    MongoClient.connect(dbUrl, function(err, db) {
        if (err) throw err;

        var dbo = db.db(dbName);

        var student= {name:'李四',sex:2,
            birthday:'1993-09-08',phone:'13434343434',
            email:'lisi@123.com', createtime:sd.format(new Date(), 'YYYY-MM-DD HH:mm:ss')
        };

        dbo.collection("t_student").insertOne(student, function(err, res) {
            if (err) {
                console.log(err);
            }
            console.log("插入成功");
            db.close();
        });

    });
}

//查询
function find(callback) {

    MongoClient.connect(dbUrl, function(err, db) {
        if (err) throw err;

        var dbo = db.db(dbName);

     //   dbo.collection("t_student"). find({name:/大/}).toArray(function(err, students) { // 返回集合中所有数据
        dbo.collection("t_student"). find({name:'asdfasdfasdfasdfasdf'}).toArray(function(err, students) { // 返回集合中所有数据
            if (err) throw err;
            db.close();

            callback(students);

        });

    });
}

//update  更新
function updateById(id) {
    MongoClient.connect(dbUrl, function(err, db) {
        if (err) throw err;
        var dbo = db.db(dbName);

      //  var id="5a8fd415f043292b5084ac72";
        var whereClause={'_id':ObjectID(id)}
        var updateClause={$set: { "email" : "asdasd11@123.com" }};
        dbo.collection("t_student").updateOne(whereClause,updateClause,function (err,res) {
            if (err) throw err;
            console.log(res); ///
            console.log(res.result.nModified+"条文档被更新"); // { n: 1, nModified: 0, ok: 1 }
            console.log("操作成功");
            db.close();
        })
    });
}


//
function  delById(id) {


    MongoClient.connect(dbUrl, function(err, db) {
        if (err) throw err;
        var dbo = db.db(dbName);

        var whereClause={'_id':ObjectID(id)};

        dbo.collection("t_student").deleteOne(whereClause, function(err, result) {
            if (err) throw err;
            console.log(result);
            console.log(result.result.n + " 条文档被删除");//
            console.log("操作成功");
            db.close();
        });
    });
}

var id="5a8fd415f043292b5084ac72";

//updateById(id);

//delById(id);

find(function (students) {
    console.log("查询出学生列表如下:");
    console.log(students);
});

// db.userInfo.find({name: /mongo/}); 模糊查询
//db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});

//2018-02-20 13:43:05到2018-02-23 17:41:08
//时间区间查询  模糊查询
//db.t_student.find({createtime: {$gte: '2018-01-20 13:43:05',$lte: '2018-02-21 17:41:08'},name:/李/});

//express 中请求重定向
// res.redirect('/foo/bar');
// res.redirect('http://example.com');

//查询
// 升序:db.userInfo.find().sort({age: 1});
// 降序:db.userInfo.find().sort({age: -1});

// db.userInfo.find().skip(0).limit(10);//分页查询  第一页
// db.userInfo.find().skip(10).limit(10); //分页查询  第二页







关键字:  nodejs  mongodb
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号