MongoDB學習與實踐

2021-08-13 06:18:03 字數 2198 閱讀 9937

《我的部落格地圖》

選擇了從事技術崗位,就需要不斷學習和探索自己未知的知識領域,因為有一天我們掌握的現有技術一定會被顛覆,社會一直在進步,科技引領時代發展,保持學習是掌握自己命運的法寶。

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的模式設計基於靈...