首先到 Mongo 的官方網站下載安裝程序:http://www.mongodb.org/,我下載的文件名爲:mongodb-win32-x86_64-2008plus-2.6.4-signed.msinode
執行安裝程序。git
下一步mongodb
贊成許可協議shell
能夠選擇定製 Custom 看一下。數據庫
所有裝上吧。express
開始實際安裝。npm
MongoDB 默認安裝到了 C:\Program Files\MongoDB 2.6 Standard\bin 目錄下,可是,沒有自動添加到 Path 路徑中,手工添加一下。json
直接執行 mongod 啓動數據庫,收到下面的信息,原來要指定數據庫文件的位置。windows
PS \> mongod
C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe --help for help and startup options 2014-09-13T11:24:01.755+0800 [initandlisten] MongoDB starting : pid=42300 port=27017 dbpath=\data\db\ 64-bit host=OpenXLive 2014-09-13T11:24:01.755+0800 [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2 2014-09-13T11:24:01.755+0800 [initandlisten] db version v2.6.4 2014-09-13T11:24:01.755+0800 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910 2014-09-13T11:24:01.755+0800 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49 2014-09-13T11:24:01.755+0800 [initandlisten] allocator: system 2014-09-13T11:24:01.755+0800 [initandlisten] options: {} 2014-09-13T11:24:01.770+0800 [initandlisten] exception in initAndListen: 10296 ********************************************************************* ERROR: dbpath (\data\db\) does not exist. Create this directory or give existing directory in --dbpath. See http://dochub.mongodb.org/core/startingandstoppingmongo ********************************************************************* , terminating 2014-09-13T11:24:01.770+0800 [initandlisten] dbexit: 2014-09-13T11:24:01.770+0800 [initandlisten] shutdown: going to close listening sockets... 2014-09-13T11:24:01.786+0800 [initandlisten] shutdown: going to flush diaglog... 2014-09-13T11:24:01.786+0800 [initandlisten] shutdown: going to close sockets... 2014-09-13T11:24:01.786+0800 [initandlisten] shutdown: waiting for fs preallocator... 2014-09-13T11:24:01.786+0800 [initandlisten] shutdown: lock for final commit... 2014-09-13T11:24:01.786+0800 [initandlisten] shutdown: final commit... 2014-09-13T11:24:01.786+0800 [initandlisten] shutdown: closing all files... 2014-09-13T11:24:01.786+0800 [initandlisten] closeAllFiles() finished 2014-09-13T11:24:01.786+0800 [initandlisten] dbexit: really exiting now
建立一個保存數據庫文件的文件夾,使用 --dbpath 來啓動,成功了。api
mongod --dbpath c:/mysite/mongodb
從新打開一個命令窗口,輸入 mongo 啓動 mongo 的命令行。
PS C:\mysite> mongo
MongoDB shell version: 2.6.4 connecting to: test Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user >
首先,咱們建立一個數據庫保存咱們的用戶信息,數據庫的名字就叫做 members 好了。
use members
很像 SQL Server ,若是沒有這個數據庫,立刻就會建立這個數據庫。
使用 show dbs 能夠查看有哪些數據庫。
在這個數據庫中建立一個名爲 users 的集合,並插入一條用戶信息。當前沒有 users 集合,mongodb 會直接建立它。
> db.users.insert( { "userId":1, "name":"tom", "email":"tom@nodejs.org" })
查找信息能夠使用 find 或者 findOne,區別在於 findOne 只會返回一個結果。
db.users.findOne( {"userId": 1})
返回的結果:
{
"_id" : ObjectId("5413be6e9e1c9f9c4386756d"),
"userId" : 1,
"name" : "tom",
"email" : "tom@nodejs.org" }
編輯 package.json, 添加對於 mongodb 的引用。
{
"name": "express-api", "version": "0.0.1", "dependencies": { "express": "2.5.9", "ejs": "0.4.2", "mongodb": "1.4.1" } }
從新 npm install 安裝 mongodb 的驅動。
輸出以下:
PS C:\mysite> npm install
npm WARN package.json express-api@0.0.1 No description npm WARN package.json express-api@0.0.1 No repository field. npm WARN package.json express-api@0.0.1 No README data npm WARN package.json ejs@0.4.2 No repository field. npm http GET https://registry.npmjs.org/mongodb npm http 304 https://registry.npmjs.org/mongodb npm http GET https://registry.npmjs.org/mongodb/-/mongodb-1.4.1.tgz npm http 200 https://registry.npmjs.org/mongodb/-/mongodb-1.4.1.tgz npm http GET https://registry.npmjs.org/bson npm http GET https://registry.npmjs.org/kerberos npm http 200 https://registry.npmjs.org/kerberos npm http GET https://registry.npmjs.org/kerberos/-/kerberos-0.0.3.tgz npm http 200 https://registry.npmjs.org/bson npm http GET https://registry.npmjs.org/bson/-/bson-0.2.7.tgz npm http 200 https://registry.npmjs.org/kerberos/-/kerberos-0.0.3.tgz npm http 200 https://registry.npmjs.org/bson/-/bson-0.2.7.tgz > kerberos@0.0.3 install C:\mysite\node_modules\mongodb\node_modules\kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) C:\mysite\node_modules\mongodb\node_modules\kerberos>node "c:\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modues\node-gyp\bin\node-gyp.js" rebuild npm http GET https://registry.npmjs.org/nan npm http 200 https://registry.npmjs.org/nan npm http GET https://registry.npmjs.org/nan/-/nan-0.8.0.tgz npm http 200 https://registry.npmjs.org/nan/-/nan-0.8.0.tgz > bson@0.2.7 install C:\mysite\node_modules\mongodb\node_modules\bson > (node-gyp rebuild 2> builderror.log) || (exit 0) C:\mysite\node_modules\mongodb\node_modules\bson>node "c:\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\ode-gyp\bin\node-gyp.js" rebuild mongodb@1.4.1 node_modules\mongodb ├── kerberos@0.0.3 └── bson@0.2.7 (nan@0.8.0) PS C:\mysite>
修改代碼,首先 require mongodb 模塊,而後鏈接到 mongodb 數據庫。
var mongo = require("mongodb");
var express = require("express"); var app = express.createServer(); app.set("view engine", "ejs"); app.set("views", __dirname + "/views"); app.set("view options", { layout: false }); app.get("/", function (request, response) { response.render("index"); }); app.get("/user/:id", function (request, response) { var id = request.params.id; console.log(id); app.users.findOne({ "userId": +id }, function (error, doc) { if (error) return next(error); response.json(doc); }); }); // connect mongodb var server = new mongo.Server("127.0.0.1", 27017); var db = new mongo.Db("members", server, {safe:true }).open(function (error, client) { if (error) throw error; console.log("\033[96m + \033[39m connected to mongodb"); app.users = new mongo.Collection(client, "users"); client.ensureIndex("users", "userId", function (error) { if (error) throw error; console.log("\033[96m + \033[39m ensured index."); console.log("Web Server listening ......"); app.listen(3000); }); });
注意如今是到數據庫中查找用戶。id 前面的 + 用來將表單中的字符串類型數據轉換爲咱們須要的數字類型。
app.users.findOne({ "userId": +id }, function (error, doc) {
if (error) return next(error); response.json(doc); });