Node.js中使用MongoDB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Node.js 和 Mongoose 插入 MongoDB

Node.JS中使用单例封装MongoDB

02_使用Node.js往mongodb插入数据

MongoDB 使用 Node.js 获取集合中的文档数(计数)

从Node JS中的MongoDB查询中获取数据

Node.js mongodb 驱动程序异步/等待查询