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;
            }
        );
    });
});

    运行代码后,结果如下:

  

    文档被删除。

时间: 2024-08-10 02:10:09

Node.js中使用MongoDB的相关文章

Node.js开发入门——MongoDB与Mongoose

为了保存网站的用户数据和业务数据,通常需要一个数据库.MongoDB和Node.js特别般配,因为MongoDB是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的命令和JavaScript语法很像.如果你在Node.js里访问MongoDB的数据,会有我们是一家人的感觉,特别亲切. 我也准备使用MongoDB来作为我的数据库. MongoDB使用集合(collection)和文档(document)来描述和存储数据,collection就相当

mongoose - 让node.js高效操作mongodb

Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. 当然要使用的话,必须要先安装好环境Node.js与MongoDB => MongoDB安装 MongoDB是目前最流行的noSQL数据库之一,它是专为node.js而开发的,理解下与我们常用的RDBMS关系型数据库的区别就可以基本使用了 MongoDB中有三个基本的概念区别于RDBMS 数据库:数

node.js高效操作mongodb

node.js高效操作mongodb Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. 当然要使用的话,必须要先安装好环境Node.js与MongoDB => MongoDB安装 MongoDB是目前最流行的noSQL数据库之一,它是专为node.js而开发的,理解下与我们常用的RDBMS关系型数据库的区别就可以基本使用了 MongoDB中有三个

MONGOOSE – 让NODE.JS高效操作MONGODB(转载)

Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. 当然要使用的话,必须要先安装好环境Node.js与MongoDB => MongoDB安装 MongoDB是目前最流行的noSQL数据库之一,它是专为node.js而开发的,理解下与我们常用的RDBMS关系型数据库的区别就可以基本使用了. MongoDB中有三个基本的概念区别于RDBMS: 数据库

Node.js中的Session,不要觉得简单哦。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应每一小节的在线练习大家可以去试试. Cookie 在web应用中,多个请求之间共享“用户会话”是非常必要的.但HTTP1.0协议是无状态的.那这时Cookie就出现了.那Cookie又是如何处理的呢? Cookie的处理: 服务端向客户端发送Cookie 客户端的浏览器把Cookie保存 然后在每次

在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任

Node.js权威指南 (10) - Node.js中的错误处理与断言处理

10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 10.1.4 绑定回调函数与拦截回调函数 / 279 10.1.5 domain堆栈的弹出与推入 / 280 10.1.6 Domain对象的销毁 / 28610.2 Node.js中的断言处理 / 286 10.2.1 equal方法与notEqual方法 / 287 10.2.2 strictE

node.js中的交互式运行环境-REPL

<Node.js权威指南>第2章Node.js中的交互式运行环境--REPL 开发者可以在该环境中很方便地输入各种JavaScript表达式并观察表达式的运行结果. 在学习Node.js框架的过程中,通过该运行环境的使用,我们可以很方便地了解Node.js中定义的各种对象所拥有的各种属性及方法.本节为大家介绍在REPL运行环境中操作变量 2.2 在REPL运行环境中操作变量 在REPL运行环境中,可以使用var关键字来定义一个变量并为其赋值,但是在输入了对其赋值进行的表达式后,该表达式的执行结

node.js中的exports和module.exports

不同的编程语言都有各自的代码组织和复用的方式,如.net.php中的命名空间,python中的import,ruby中的module等,来避免命名空间污染.一直都没搞清楚node中的exports和module.exports的区别,借此搞清楚node的代码模块复用方式. 首先怎么创建node中的modules. 可以直接创建一个文件作为module,如下module.js function writeLine(){ console.log("module.js"); } export