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

  本文源码详见: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

最新文章

  1. C++实现Ping
  2. 【android 开 发 】 - Android studio 下 NDK Jni 开发 简单例子
  3. PHP 输出缓冲控制(Output Control) 学习
  4. uva 297 quadtrees——yhx
  5. Python之路第三天,基础(3)-set,函数,内置函数,文件,三元运算,lambda
  6. JDK和JRE的差异和区别
  7. 如何解决卸载McAfee时出现“处于托管模式时无法删除”问题(转)
  8. css ie6最小高度问题
  9. Java学习(一)
  10. C#扩展方法类库StringExtensions
  11. HDU 2174 Bridged Marble Rings
  12. <数据结构基础学习>(四)链表 Part 2
  13. C#弹出窗体、C#导出Excel、C#数据展示框、C#弹出框
  14. H5 字体属性补充
  15. [Codeforces235D]Graph Game——概率与期望+基环树+容斥
  16. [SHOI2006] 有色图
  17. ionic打包报错Execution failed for task ':processDebugResources'
  18. 内部排序->插入排序->希尔排序
  19. 漫谈 C++ 虚函数 的 实现原理
  20. OpenCV调整彩色图像的饱和度和亮度

热门文章

  1. c#_DropdownList Panel Textbox 控件交互使用,有autopostback和没有的区别
  2. C#_delegate - 调用列表
  3. What Influences Method Call Performance in Java?--reference
  4. Socket异步通信学习二
  5. oracle11g密码大小写敏感问题
  6. SVN服务器搭建和使用(二)
  7. CentOS内核升级
  8. 警告:Pointer is missing a nullability type specifier (__nonnull or __nullable)
  9. SQL学习笔记
  10. 关于php的两个符号@和$