第一次嘗試翻譯外國牛人的博文,希望大家喜歡。
本文源碼詳見: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