第一次尝试翻译外国牛人的博文,希望大家喜欢。

  本文源码详见:https://github.com/njaulj/mongojs

  一点都不夸大的说,近年来node.js和mongodb的确是大放异彩,在web界刮起了一股旋风。

  node.js和mongodb不仅仅是一些Geeke的宠物,而是越来越多的大企业也在发展这两门技术,并且起到了杠杆作用,越来越多的用户正在使用这两门利器搭建了,高拓展性、高表现性、高功能性的web程序。

  好了,言归正传。

  什么是node.js?

  node.js是一个立基于Chrome JavaScript Runtime的平台,任何人都可以轻松的用它来部署、开发高速的、高扩展、大吞吐大网络程序。

  node.js的两种特性:

  1.事件驱动

  2.无阻塞的I/O

  正是这两种特性使得node.js轻量和高效,在分布式设备上能够轻松的部署实时的数据密集型的程序。

  什么是MongoDB?

  MongoDB是一个高扩展性、高表现性的开源Nosql 数据库。

  本文会从最基础node.js和MongoDB程序开始,首先请确认你已经安装了node.js和MongoDB。

  OK,让我们来核实一下你的node.js和mongodb server吧:

  $ node -v

  $ mongod 

  介绍一下MongoJS?

  MongoJS是一个才华横溢的轻量的Node.js包。你可以通过它使用一个非常类似于MongoDB‘s Javascript shell的API,从而轻松的连接到MongoDB!

  安装MongoJS

  $ npm install mongojs  

  OK,我们可以开始搭建我们的JS程序了,并且连接到我们的MongoDB 数据库:

  // app.js
  var databaseUrl ="mydb";// "username:password@example.com/mydb"
  var collections =["users","reports"]
  var db =require("mongojs").connect(databaseUrl, collections);

  databaseUrl 包含了数据库服务器主机和端口,数据库名字的连接信息。

  系统默认的host是localhost,端口是27017.如果你是在开发者环境中的话,databaseUrl只需要包含实际的数据实例名字计科。

  collections是一个数组的数据类型。它不是强制的如此,只是为了接近Node.js API让我们更轻松的模拟MongoDb Javascript 客户端。

  下面将通过一个例子(给定找到条件来查找所有的女性用户)来查找记录。 

  // app.js
  db.users.find({sex:"female"},function(err, users){
    if( err ||!users) console.log("No female users found");
    else users.forEach(function(femaleUser){
      console.log(femaleUser);
    });
  });

  请注意我们是如何初始化我们的查询语句的。除此之外,我们还通过一个回调函数来管理query出来的结果。

  node.js是事件驱动的,通过回调函数能够让你的程序没有阻塞,并且高表现性。

  通过运行上面的程序,我们发现 No femail users found。为什么呢?

  哈哈,不用大惊小怪,我们还没有往mydb数据库里面添加数据呢?

  下面我将通过程序往mydb数据库里面增加几行代码!

  // app.js
  db.users.save({email:"717010686@qq.com", password:"iLoveMongo", sex:"male"},function(err, saved){
    if( err ||!saved ) console.log("User not saved");
    else console.log("User saved");
  });

  

 db.users.save({email:"18251888949@163.com", password:"iLoveMongo", sex:"female"},function(err, saved){
    if( err ||!saved ) console.log("User not saved");
    else console.log("User saved");
  });

 下一个例子是如何更新用户信息:

  // app.js
  db.users.update({email:"717010686@qq.com"},{$set:{password:"iReallyLoveMongo"}},function(err, updated){
    if( err ||!updated ) console.log("User not updated");
    else console.log("User updated");
  });

  OK,让我们来运行app.js吧。

  $ node app.js

  OK,在这里我们就成功的完成了node.js和MongoDB的入门了。

    

  原著见:http://howtonode.org/node-js-and-mongodb-getting-started-with-mongojs

  推广 http://www.keepol.com

Node.js和MongoDB - MongoJS入门的更多相关文章

  1. 以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)

    第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售 ...

  2. Node.js 中MongoDB的基本接口操作

    Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...

  3. MongoDB学习(2)—Node.js与MongoDB的基本连接示例

    前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务,在test数据库中插入一条实例数据: db. ...

  4. 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)

    这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000005040834 突然想起来我这个博客冷落了好多年了,也该更新一下,呵 ...

  5. Node.js与MongoDB的基本连接示例

    Node.js与MongoDB的基本连接示例 前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务 ...

  6. [Node.js]连接mongodb

    摘要 前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容. 安装驱动 安装命令 cnpm install mongodb 安装成功 数据库操作 因为mon ...

  7. node.js+express+mongodb

    主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add     post a ...

  8. Node.js+websocket+mongodb实现即时聊天室

    ChatRoom Node.js+websocket+mongodb实现即时聊天室 A,nodejs简介:Node.js是一个可以让javascript运行在服务器端的平台,它可以让javascrip ...

  9. node.js和MongoDB学习网址

    回想我写的node.js和MongoDB的博客,都是菜鸟教程那里的知识,所以我打算不写了,那些都是基础,在项目开发中,我发现单单有那些基础不行,这些基础可以尽快学好,然后学习项目开发过程 下面是两个教 ...

随机推荐

  1. php常用系统函数

    首先纯html页要用meta标签声明编码   <meta http-equiv="Content-Type" content="text/html; charset ...

  2. 项目源码--Android高质量图片浏览器源码

      下载源码   技术要点: 1. 浏览所有格式的图片 2. 图片缓存到数据库 3. Sqlite数据库的高级应用 4. 文件夹缩图显示 5. 多点触控技术 6. 动画技术 7. 支持超高清图片 8. ...

  3. java RSA加密解密--转载

    原文地址:http://www.blogjava.net/icewee/archive/2012/05/19/378570.html 该工具类中用到了BASE64,需要借助第三方类库:javabase ...

  4. 手把手教你使用UICollectionView写公司的项目

    在很多app中都有这样通用的页面,一直没有机会使用UICollectionView,只是简单的看过他的使用方法.今天公司美工出图,使用了他,并且遇到了好多的坑.记录一下过程,不确定使用的方法是不是最优 ...

  5. [转]Oracle 调用存储过程并显示结果集 Oracle.DataAccess.Client OracleDbType.RefCursor

    本文转自:http://liye9801.blog.163.com/blog/static/6019703200901244448950/ 今天学习了一个Oracle中的存储过程,一开始便被如果返回结 ...

  6. poj1274 匈牙利算法 二分图最大匹配

    poj1274 题意: 有n个奶牛, m个畜舍, 每个畜舍最多装1头牛,每只奶牛只有在自己喜欢的畜舍里才能产奶. 求最大产奶量. 分析: 其实题意很明显, 二分图的最大匹配, 匈牙利算法. #incl ...

  7. linux shell if参数

    shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当path ...

  8. VBA实现随意输入组合码,查询唯一标识码

    记录背景: 需要在excel中查询出组合码,对应的唯一标识码. 举例 组合码:4+5+6+9+1*2   标识码:A1 界面随意输入组合码:1*2+4+5+6+9  输出标识码:A1 VBA实现: P ...

  9. ASP.NET在IIS7中如何更改网站的.net framework框架版本

    IIS7安装好以后使用了.net 2.0 framework框架,经过折腾发现如下方法可以更改框架版本,从而可以部署使用其他版本框架开发的网站 方法一:建立网站时设置.net框架版本 方法二:对于已经 ...

  10. 元素exist/present/visible(vanish)/enable的区别

    一.判断元素exist/present/visible(vanish)/enable的区别: 1.首先,从selenium代码上来区别: 1)exist/present表示元素个数是否大于0   Li ...