首页 > 代码库 > Node.js中使用MongoDB

Node.js中使用MongoDB

  MongoDB是一个通用型的NoSQL,在很多地方得到了广泛的应用。接下来我们看如何在Node.js中使用MongoDB数据库。

  1、环境安装

    首先从MongoDB官网中下载、安装,配置好环境变量,保证mongod命令可以顺利启动。然后利用npm install mongodb安装MongoDB模块。

  2、启动数据库

    我们在命令行输入mongod命令,启动数据库。MongoDB默认绑定端口27017,要防止其他应用占用了这个端口,导致数据库无法启动。当数据库成功启动后,会出现OK提示语,如下图所示:

技术分享

 

    然后我们可以输入mongo命令,就可以在命令行中对数据库进行操作。

  3、插入操作

    启动数据库后,我们先编写插入操作。

var mongodb = require(‘mongodb‘);var server = new mongodb.Server(‘127.0.0.1‘, 27017, {});var client = new mongodb.Db(‘mydatabase‘, server, {w: 1});client.open(function(err) {    if (err) throw err;        client.collection(‘test_insert‘, function(err, collection) {        if (err) throw err;        collection.insert(            {                "title": "I like cake",                "body": "It is quite good."            },            {safe: true},            function(err, documents) {                if (err) throw err;                //console.log(‘Document ID is: ‘ + documents[0]._id);            }        );        console.log(‘We are now able to perform queries.‘);    });});

  

    为了检验数据是否真的被插入数据库,我们在命令行执行如下操作(得先输入mongo命令):

  技术分享

 

     可以看到,数据确实被插入到数据库mydatabase的test_insert集合中。

 

  4、查询操作

var mongodb = require(‘mongodb‘);var server = new mongodb.Server(‘127.0.0.1‘, 27017, {});var client = new mongodb.Db(‘mydatabase‘, server, {w: 1});client.open(function(err) {    if (err) throw err;        client.collection(‘test_insert‘, function(err, collection) {        if (err) throw err;        collection.find({"title": "I like cake"}).toArray(            function(err, results) {                if (err) throw err;                console.log(results);            }        );    });});

    运行上面的代码,得到的结果如下:

    技术分享

    可以看出,这正是我们插入的数据。

 

  5、更新操作

var mongodb = require(‘mongodb‘);var server = new mongodb.Server(‘127.0.0.1‘, 27017, {});var client = new mongodb.Db(‘mydatabase‘, server, {w: 1});client.open(function(err) {    if (err) throw err;        client.collection(‘test_insert‘, function(err, collection) {        if (err) throw err;        collection.update({"title": "I like cake"},            {$set: {"body": "It is so bad"}},            {safe: true},            function(err) {                if (err) throw err;            }        );    });});

    运行上面的代码,结果如下:

    技术分享

    可以看到,文档的body已经被更新。

 

  6、删除操作

var mongodb = require(‘mongodb‘);var server = new mongodb.Server(‘127.0.0.1‘, 27017, {});var client = new mongodb.Db(‘mydatabase‘, server, {w: 1});client.open(function(err) {    if (err) throw err;        client.collection(‘test_insert‘, function(err, collection) {        if (err) throw err;        collection.remove({"title": "I like cake"},            {safe: true},            function(err) {                if (err) throw err;            }        );    });});

    运行代码后,结果如下:

  技术分享

    文档被删除。

Node.js中使用MongoDB