摘要:使用操作是基于開發的驅動,可以在異步的環境下執行。比如,啟動,直接在終端輸入就可以啟動啦默認運行在。還可以自定義端口或者輸入的使用首先新建一個名為的文件夾,該文件夾就是數據庫目錄。
使用Mongoose操作MongoDB
Mongoose是基于node-mongodb-native開發的MongoDB nodejs驅動,可以在異步的環境下執行。
關于在Mac下安裝和使用MongoDB可以看我之前的一篇文章:
MongoDB PATH環境變量配置文章傳送門:Mac下安裝MongoDB 及使用教程
將mongodb添加到環境變量中:$ vim ~/.zshrc,添加如下命令行:
export PATH="$PATH:/usr/local/mongodb/bin"
當然前提是將解壓出來的文件移到/usr/local/mongodb目錄中。版本3.0.7
然后就可以在終端直接使用MongoDB命令,而不用每次都進入MongoDB所在文件夾的目錄啦。
比如,啟動MongoDB,直接在終端輸入 $ mongo 就可以啟動啦
默認運行在 http://127.0.0.1:27017 。
還可以自定義端口:$ mongod --dbpath=data/db --port=27017或者輸入:$ mongo 127.0.0.1:27017
Mongoose的使用首先新建一個名為mongo的文件夾,該文件夾就是數據庫目錄。然后在該目錄下安裝mongoose:
$ npm install mongoose
在該目錄下新建一個名為script.js的文件:
var mongoose = require("mongoose"); var uri = "mongodb://username:password@hostname:port/databasename"; uri = "mongodb://localhost/mongo"; mongoose.connect(uri); //在Schma里定義數據類型 var BookSchma = new mongoose.Schema({ //定義一個Schema name: String, author: String, publishTime:Date }); mongoose.model("Book",BookSchma);//將該Schema發布為Model
通過Model我們就可以創建、刪除和修改mongodb里面的文檔,MongoDB為我們提供了Schema,Schema則提供了數據類型和結構的定義。
然后在該目錄下再新建一個名為insert.js的文件:
var mongoose = require("mongoose"); require("./script.js"); var Book = mongoose.model("Book");//Book為model name var book = new Book({ name: "MEAN Web Development", author: "trigkit4", publishTime: new Date() }); book.save(function (err) { console.log("save status:",err ? "failed" : "success"); });
打開終端,進入數據庫目錄(文件夾目錄),輸入$ node insert.js,不出意外應該可以看到:
save status: success
find查詢操作,返回結果包含在數組里(單個的請使用findOne())
var mongoose = require("mongoose"); require("./script"); var Book = mongoose.model("Book"); /* find參數: 1.$or(array)和$and(array)
新建一個名為or.js的文件
var mongoose = require("mongoose"); require("./script"); var Book = mongoose.model("Book"); var condition ={ $or: [ {author: "trigkit4"}, {author: "Mike"} ] }; Book.find(condition, function (err, results) { if(err){ console.log("condition error",err); return; } console.log("condition",condition,"results",results); });
終端輸入$ node or.js,不出意外應該能輸出:
condition { "$or": [ { author: "trigkit4" }, { author: "Mike" } ] } results [ { __v: 0, publishTime: Fri Nov 27 2015 22:13:14 GMT+0800 (CST), author: "trigkit4", name: "MEAN Web Development", _id: 565864fae48504c03d92f319 } ]
關于Array
Array在JavaScript編程語言中并不是數組,而是集合,因此里面可以存入不同的值,以下代碼等價:
var Schema1 = new Schema({array:[]}); var Schema2 = new Schema({array:Array}); var Schema3 = new Schema({array:[Schema.Types.Mixed]}); var Schema4 = new Schema({array:[{}]});在Express中使用Mongoose
首先先安裝express-generator
$ npm install express-generator -g
安裝好后,在終端執行:
$ express mongooseExpress
用來生成一個express實例。
然后我們在這個mongooseExpress文件夾下新建一個名為config的文件夾,然后在config下新建一個config.js文件:
module.exports = { mongodb: "mongodb://localhost/mongo" };
在再config文件夾下新建一個名為mongoose.js的文件:
var mongoose = require("mongoose"); var config = require("./config"); module.exports = function () { var db = mongoose.connect(config.mongodb);//連接數據庫 return db;//返回數據庫實例 };
然后我們再新建一個名為models的文件夾,然后新建一個名為user.server.model.js的文件:
var mongoose = require("mongoose"); var UserSchema = new mongoose.Schema({ uid: Number, username: String, createTime: Date, lastLogin: Date }); mongoose.model("user",UserSchema);
然后在剛才的mongoose.js中添加如下代碼:
require("../models/user.server.model.js");
打開app.js,添加如下代碼:
var mongoose = require("./config/mongoose"); var db = mongoose();使用Mongoose讀取數據
首先打開routes文件夾下的users.js文件,添加如下代碼:
var mongoose = require("mongoose"); var User = mongoose.model("User"); router.get("/test", function (req, res, next) { var user = new User({ uid: 123, username: "trigkit4" }); user.save(function (err) { if(err){ res.end("Error"); return next(); } //find({})意為返回所有文檔 User.find({}, function (err, results) { if(err){ res.end("Error"); return next(); } res.json(results);//以json數據類型返回值 }) }) });
最后,打開終端,進入mongooseExpress目錄,執行
$ npm install
將package.json的依賴安裝好后,再執行:
$ npm install mongoose --save
在終端輸入cat package.json,可以看到
{ "name": "mongooseExpress", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.13.2", "cookie-parser": "~1.3.5", "debug": "~2.2.0", "express": "~4.13.1", "jade": "~1.11.0", "mongoose": "^4.2.8", "morgan": "~1.6.1", "serve-favicon": "~2.3.0" } }
可以看到"start": "node ./bin/www",因此,啟動腳本需要在終端執行
$ node bin/www
然后打開另外一個窗口,輸入:
curl localhost:3000/users/test
可以看到node bin/www那端的窗口顯示GET / 200 28.562 ms - 170
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/18792.html
摘要:使用內在模塊發送響應數據監聽端口終端打印如下信息使用框架本項目使用的框架來起服務器。數據庫中文檔每一行的數據的數據結構和基本一樣,所有存儲在集合中的數據都是格式,是一種類的一種二進制形式的存儲格式,簡稱。 前言 經過上一篇經濟基礎構建的完成,那么現在正式開始碼代碼吧! 項目架構 showImg(https://segmentfault.com/img/bVNkQM?w=322&h=58...
摘要:使用內在模塊發送響應數據監聽端口終端打印如下信息使用框架本項目使用的框架來起服務器。數據庫中文檔每一行的數據的數據結構和基本一樣,所有存儲在集合中的數據都是格式,是一種類的一種二進制形式的存儲格式,簡稱。 前言 經過上一篇經濟基礎構建的完成,那么現在正式開始碼代碼吧! 項目架構 showImg(https://segmentfault.com/img/bVNkQM?w=322&h=58...
摘要:接下去完成與本機上數據庫的連接,這是一個異步函數,當連接完成之后,觸發執行其回調函數,參數指代這個數據庫本身。同樣是在完成數據庫連接的回調函數當中對這個對象進行操作。當完成修改操作之后觸發執行其回調函數,表示對修改結果的反饋。 一、node.js對于mongodb的基本操作 1、數據庫的開機 首先我們要先對數據庫進行開機的操作,建立一個文件夾用于存放數據庫文檔。如D:mongo,接下去...
摘要:如圖連接成功后,顯示你的數據庫,在這個節目可以對數據庫進行操作。如圖安裝與加載首先假定你已經安裝了,命令行工具輸入在使用的文件中即可。創建讀取更新刪除單值讀取上文是在中基于對進行增刪查改操作的簡單介紹,以后會有進階的文章。 關鍵詞:mongodb安裝 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查詢,增加,修改,刪除 工具介紹 Mon...
摘要:如圖連接成功后,顯示你的數據庫,在這個節目可以對數據庫進行操作。如圖安裝與加載首先假定你已經安裝了,命令行工具輸入在使用的文件中即可。創建讀取更新刪除單值讀取上文是在中基于對進行增刪查改操作的簡單介紹,以后會有進階的文章。 關鍵詞:mongodb安裝 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查詢,增加,修改,刪除 工具介紹 Mon...
閱讀 375·2023-04-25 16:38
閱讀 1492·2021-09-26 09:46
閱讀 3333·2021-09-08 09:35
閱讀 2785·2019-08-30 12:54
閱讀 3254·2019-08-29 17:06
閱讀 1023·2019-08-29 14:06
閱讀 3351·2019-08-29 13:00
閱讀 3471·2019-08-28 17:53