《我的部落格地圖》
選擇了從事技術崗位,就需要不斷學習和探索自己未知的知識領域,因為有一天我們掌握的現有技術一定會被顛覆,社會一直在進步,科技引領時代發展,保持學習是掌握自己命運的法寶。
1、概要
傳統的mysql、oracle等關係型資料庫,在儲存資料之前需要為資料定義資料表,並且為該資料表定義一些字段,從而使資料模型得到實現。在關係型資料庫中,乙個資料表就是乙個資料架構。它預先定義了開發者可以使用的資料模型。
mongodb是面向文件的資料庫,不是關係型資料庫。被認為是無資料架構的。然而資料架構仍然是有用的,可以使人以易讀的方式來描述資料庫中的資料內容,並為這些資料定義一些規則。
mongod 是用來連線到mongodb資料庫伺服器的,即伺服器端。
mongo 是用來啟動mongodb shell的,是mongodb的命令列客戶端。
安裝mac預設安裝路徑/usr/local/var/mongodb,環境變數路徑,
資料庫程式/usr/local/bin/mongo,資料庫伺服器
/usr/local/bin/
mongod
配置檢視配置檔案,/usr/local/etc/mongod.conf,修改預設資料庫路徑為/users/wanshaobo/document/mongo/db,修改資料庫日誌檔案為/users/wanshaobo/document/mongo/log/mongo.log
啟動啟動預設資料庫伺服器,sudo mongod
啟動指定資料庫伺服器,
mongod --dbpath /users/wanshaobo/document/mongo/db --logpath
/users/wanshaobo/document/mongo/db/
mongodb.log
啟動資料庫程式,$ mongo,常用命令如下:
$ db 檢視當前所連線的資料庫
$ use dbname 建立/切換資料庫
$ show dbs 檢視存在的資料庫
$ exit 退出程式
$ db.abc.find().pretty()
$ db.abc.insert();
$ db.abc.update()
視覺化工具
robomongo
資料庫檔案遷移
2、mongoose-連線express框架和mongodb資料庫的紐帶
匯入mongoose庫
var mongoose = require('mongoose');
獲取db物件
var db = mongoose.connection;
db物件事件
db.on(name,callback);//name:error,open,connection,connected,disconnecting,disconnected
啟動mongoose.connect(''mongodb://localhost:27017/abc'')
關閉mongoose.connection.close(); 等同於 db.close();
mongoose.disconnect();
schema-資料模型(資料集),用來定義資料結構和型別,
建立資料模型:
var mongoose = require('mongoose');
var schema = mongoose.schema;
var userschema = new schema(,
password: ,
age: number,
address: string,
createat:
});動態擴充套件資料模型:
userschema.add();
資料模型支援的資料型別:string,number,date,buffer,boolean,mixed,objectid,array
model-資料模型的建構函式,對資料進行增刪改查操作,建立資料模型(資料物件)建構函式:
var user = mongoose.model('users', userschema);
資料模型(資料物件)例項化:
var wanshaobo = new user(
)例項方法
wanshaobo.methods.sayname = function(){}
靜態方法
userschema.statics.printname = function(){}
MongoDB 最佳實踐
已經有很多關於 nosql 選擇的文章了。影響你選擇資料庫的因素有 讀 寫操作的吞吐量,永續性,一致性,延遲性等等。nathan hurst 的文章 visual guide to nosql system 很好的總結了這一點。nosql 通用的最佳實踐 1.徹底的測試 模擬你的生產環境,包括流量來...
MongoDB最佳實踐
將mongodb加入到我們的服務支援列表中,是整個團隊年初工作計畫中的首要任務。但我們感覺如果先新增一項對nosql儲存的支援,而不是先公升級已支援的關係型資料庫,可能對使用者不太好,畢竟目前的使用者都使用關係型資料庫。所以我們決定將引入mongodb這項工作放到公升級mysql和postgresq...
mongodb 最佳實踐
不要按照關係型來設計表結構 mongodb可以讓你像關係型資料庫一樣設計表結構,但是它不支援外來鍵,也不支援複雜的join!如果你的程式發現有大量實用join的地方,那你的設計可能需要重新來過。參照以下相關模式設計建議。資料庫集合 collection 的數量不宜太多 mongodb的模式設計基於靈...