SlideShare a Scribd company logo
MongoDB
艾鍗學院
資料庫
資料操作四大行為: CRUD
• 新增(Create)、讀取(Read)、更新(Update)、刪除
(Delete)
• RDBMS: Relational Database Management System
• 須熟悉SQL (Structural Query Language)語法來進行DB
操作
• 須先建立Schemas (表格欄位的資料型態表與資料表間
的關聯),且插入每筆皆進行嚴格的資料型態檢查
• Primary Key, Foreign key
• MySQL、MariaDB、SQLite、MS SQL Server、MS Access
• 以往資料讀遠多於寫,而現在寫入速度需求大增,
NoSQL資料庫興起
• BigData is 3Vs : volume, variety and velocity
• NoSQL(Not only SQL)
資料庫
資料操作四大行為: CRUD
• 新增(Create)、讀取(Read)、更新(Update)、刪除
(Delete)
• RDBMS: Relational Database Management System
• 須熟悉SQL (Structural Query Language)語法來進行DB
操作
• 須先建立Schemas (表格欄位的資料型態表與資料表間
的關聯),且插入每筆皆進行嚴格的資料型態檢查
• Primary Key, Foreign key
• MySQL、MariaDB、SQLite、MS SQL Server、MS Access
• 以往資料讀遠多於寫,而現在寫入速度需求大增,
NoSQL資料庫興起
• BigData is 3Vs : volume, variety and velocity
• NoSQL(Not only SQL)
RDBMS vs NoSQL
database
collection
document
field
在Raspberry Pi安裝MongoDB Server
下載 mongoDB Binaries (pre-compiled version)
1) Get mongod.tar.gz
2) tar zxvf mongod.tar.gz
3) cd mongoDB
啓動mongoDB 伺服器
1) mkdir –p /data/db/
2) ./mongod --port 27017 --bind_ip 0.0.0.0 &
• 預設只能本機存取(127.0.0.1),0.0.0.0表示允許任何IP連入
• 執行netstat –atn 確認Port 27017 在Listen
• 異常結束時, 要刪除lock檔, 才能重新啓動..
• rm –rf /data/db/mongod.lock
使用mongo shell 操作MongoDB Server
./mongo
MongoDB
MongoDB每一筆資料(document) 是以JSON
格式來進行儲存
Robomongo (Robo 3T)
www.robomongo.org
查詢結果 Snapshot
mongoose module
http://mongoosejs.com/
用來存取MongoDB的node.js module
require('mongoose');
Example
var mongoose = require('mongoose');
// 連線到localhost上的MongoDB,使用test資料庫
mongoose.connect('mongodb://localhost/ test');
var collectionName = 'dog';
var catSchema = mongoose.Schema(
{
name: String,
age: Number,
sex: Boolean,
date: { type: Date, default: Date.now } //default date
});
var Cat = mongoose.model('Cat',catSchema,collectionName);
var people = new Cat();
people.name = name;
people.age = 50;
people.sex = true;
//存入該資料到MongoDB
people.save(function (err) {
if (err) {
// 存入失敗
console.log('Something's wrong');
return;
}
// 存入成功
console.log('Add successfully! ');
process.exit();
});
Defining your schema
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var blogSchema = new Schema({
title: String,
author: String,
body: String,
comments: [{ body: String, date: Date }],
date: { type: Date, default: Date.now },
hidden: Boolean,
meta: {
votes: Number,
favs: Number
}
})
SchemaTypes:
• String
• Number
• Date
• Buffer
• Boolean
• Mixed
• ObjectId
• Array
實驗: MongoDB 資料操作CRUD
程式路徑: Node.js/MongoDB/MongoDB_01_cmd
npm install
Test Case:
• node app.js add joseph
• node app.js find
• node app.js remove joseph
• node app.js update joseph age 150
• node app.js update joseph sex true
實驗: MongoDB+WebSocket+Express
程式路徑: Node.js/MongoDB/appendTable
npm install; node app.js

More Related Content

PDF
六角學院 - 資料庫與他們的小夥伴們
KEY
Redis
PPTX
MongoDB SHARE
PDF
redis 适用场景与实现
PDF
關聯式資料庫系統的規劃
PPTX
Hdfs
PDF
110412 kningsoft-mongo db-intro-usage-in-mercury
六角學院 - 資料庫與他們的小夥伴們
Redis
MongoDB SHARE
redis 适用场景与实现
關聯式資料庫系統的規劃
Hdfs
110412 kningsoft-mongo db-intro-usage-in-mercury

What's hot (20)

PDF
Big Data, NoSQL, and MongoDB
PPTX
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
PPTX
Mongo db 特性
PPT
MongoDB gridfs
PDF
Cassandra Technical and history overview
PPTX
Mongo db 簡介
PPT
20120324 sql server 2012新特性by_rico
PPTX
NoSQL-MongoDB介紹
PDF
Spark sql培训
PDF
大型网站架构的发展
PPT
Sequoia db 技术概述_sacc
PPTX
Feed服务架构-新浪微博新员工培训议题
PPTX
深入淺出Node.JS
PDF
搶救資料庫效能大作戰
PDF
Google LevelDB Study Discuss
PPTX
借助 MongoDB 实现扩展
PPT
深入学习Mongo db
PDF
NoSQL误用和常见陷阱分析
PDF
H base 使用初体验
PPT
Hadoop introduction
Big Data, NoSQL, and MongoDB
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
Mongo db 特性
MongoDB gridfs
Cassandra Technical and history overview
Mongo db 簡介
20120324 sql server 2012新特性by_rico
NoSQL-MongoDB介紹
Spark sql培训
大型网站架构的发展
Sequoia db 技术概述_sacc
Feed服务架构-新浪微博新员工培训议题
深入淺出Node.JS
搶救資料庫效能大作戰
Google LevelDB Study Discuss
借助 MongoDB 实现扩展
深入学习Mongo db
NoSQL误用和常见陷阱分析
H base 使用初体验
Hadoop introduction
Ad

Similar to NoSQL-MongoDB (20)

PPT
Mongo db技术交流
PDF
Nosql及其主要产品简介
PDF
Mongo db实战
PDF
改善Programmer生活的sql技能
PDF
Mongo db &lamp;redis,nosql
PDF
Mongodb学习手册
PPT
MongoDB Basics and Tutorial
PPTX
Big Query
PDF
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
PDF
Mongo db introduction
PPTX
1到100000000 - 分布式大型网站的架构设计
PPTX
Ios app資料庫伺服器
PDF
MongoDB for C# developer
PPT
Hadoop 與 SQL 的甜蜜連結
PDF
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
PDF
資料庫入門 Part2
PPT
Mongo快速入门
PDF
老司機帶你上手 PostgreSQL 關聯式資料庫系統
PDF
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
PPT
Java SE 8 技術手冊第 16 章 - 整合資料庫
Mongo db技术交流
Nosql及其主要产品简介
Mongo db实战
改善Programmer生活的sql技能
Mongo db &lamp;redis,nosql
Mongodb学习手册
MongoDB Basics and Tutorial
Big Query
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Mongo db introduction
1到100000000 - 分布式大型网站的架构设计
Ios app資料庫伺服器
MongoDB for C# developer
Hadoop 與 SQL 的甜蜜連結
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
資料庫入門 Part2
Mongo快速入门
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Ad

More from 艾鍗科技 (20)

PPTX
AI 技術浪潮, 什麼是機器學習? 什麼是深度學習, 什麼是生成式AI, AI 能力認證
PDF
TinyML - 4 speech recognition
PPTX
Appendix 1 Goolge colab
PPTX
Project-IOT於餐館系統的應用
PPTX
02 IoT implementation
PPTX
Tiny ML for spark Fun Edge
PDF
Openvino ncs2
PDF
Step motor
PDF
2. 機器學習簡介
PDF
5.MLP(Multi-Layer Perceptron)
PDF
3. data features
PPTX
心率血氧檢測與運動促進
PPTX
利用音樂&情境燈幫助放鬆
PPTX
IoT感測器驅動程式 在樹莓派上實作
PPTX
無線聲控遙控車
PPT
最佳光源的研究和實作
PPTX
無線監控網路攝影機與控制自走車
PPTX
Reinforcement Learning
PPTX
Linux Device Tree
PPTX
人臉辨識考勤系統
AI 技術浪潮, 什麼是機器學習? 什麼是深度學習, 什麼是生成式AI, AI 能力認證
TinyML - 4 speech recognition
Appendix 1 Goolge colab
Project-IOT於餐館系統的應用
02 IoT implementation
Tiny ML for spark Fun Edge
Openvino ncs2
Step motor
2. 機器學習簡介
5.MLP(Multi-Layer Perceptron)
3. data features
心率血氧檢測與運動促進
利用音樂&情境燈幫助放鬆
IoT感測器驅動程式 在樹莓派上實作
無線聲控遙控車
最佳光源的研究和實作
無線監控網路攝影機與控制自走車
Reinforcement Learning
Linux Device Tree
人臉辨識考勤系統

NoSQL-MongoDB