mongoDB学习

"不知道为什么,就是想写一篇文章。。。"——某程序员

一直在说要学习mongoDB,前段时间终于学习了。今天刚好把mongo和nodeJS结合起来了,就写一篇文章总结一下。

先说一下mongoDB的安装,在mongo官网下载安装包(自行百度),或者在GitHub上面自行下载然后编译(过程省略。。。);

下载装好之后开始对mongoDB开始配置:

命令进入到mongoDB的安装目录,输入 mongod --dbpath 路径 --logpath 路径\*.log文件 --serviceName "服务名称" --install

解释一下上面命令的意思:

  mongod(mongod.exe)表示mongoDB服务

  --dbpath表示存放数据的文件

  --logpath表示存放日志的文件,后缀是.log

  --serviceName表示把mongodb添加到系统服务

  --install 开始安装

装好之后运行bin目录下的mongo.exe,然后就可以对数据库进行操作了。

以上步骤比较粗糙,网上都能找到,就不过多的阐述,下面就mongoDB结合nodeJS进行操作。

首先下一个mongo的官方包,npm命令: npm install mongodb,

然后是数据库的连接、数据的CRUD(增删查改)。

数据库连接

mongodb包里面有个MongoClient就是mongoDB的实例,所以用MongoClient.connect(url,cb);

在这里url就是你mongoDB的集合,cb就是回调函数。

url一般都是mongodb://127.0.0.1:27017/集合名

在回调函数里面进行CRUD操作

增加操作

var insertData = function(db, data, cb) {
    var collection = db.collection("myMongo");
    collection.insert(data, function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

 

删除操作

var removeData = function(db, data, cb) {
    var collection = db.collection("myMongo");
    collection.remove(data, function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

查询操作

var findData = function(db, data, cb) {
    var collection = db.collection("myMongo");
    collection.find(data).toArray(function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

修改操作

var updateData = function(db, data, updateDate, cb) {
    var collection = db.collection("myMongo");
    collection.update(data, updateDate, function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

以上写得比较模糊,除了查询操作以外,其实代码都差不多,查询数据需要把查询得到的数据toArray。

写得比较杂乱无章,最后贴上完整代码:

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://127.0.0.1:27017/myMongo';
//数据库连接
MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log('数据库连接成功。。。');
    var data = [{
        "name": "test3",
        "age": 23
    }, {
        "name": "test4",
        "age": 24
    }];
    var data1 = {
        "age": 21
    }
    var data2 = {
        "age": 22
    }
    var data3 = {
        "name": "andy",
        "age": 30
    }

    insertData(db, data, function(res) {
        console.log(res);
        db.close();
    })

    removeData(db, data1, function(res) {
        console.log(res)
        db.close();
    })

    findData(db, data2, function(res) {
        console.log(res)
        db.close();
    })

    updateData(db, data1, data3, function(res) {
        console.log(res);
        db.close();
    })
})

//插入数据
var insertData = function(db, data, cb) {
    var collection = db.collection("myMongo");
    collection.insert(data, function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

//删除数据
var removeData = function(db, data, cb) {
    var collection = db.collection("myMongo");
    collection.remove(data, function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

//查询数据
var findData = function(db, data, cb) {
    var collection = db.collection("myMongo");
    collection.find(data).toArray(function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

//修改数据
var updateData = function(db, data, updateDate, cb) {
    var collection = db.collection("myMongo");
    collection.update(data, updateDate, function(err, res) {
        if (err) {
            console.log("Error:" + err);
            return;
        }
        cb(res);
    })
}

以上全为个人总结,纯原创内容,转载请注明,谢谢。

 

posted on 2016-11-04 18:20  薛将军  阅读(211)  评论(1编辑  收藏  举报

导航