Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MongoDB and Mongoose Tutorial
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
andikan
May 08, 2014
Programming
1
1.4k
MongoDB and Mongoose Tutorial
2014/05/08 @ NTU CCSP
https://github.com/NTU-CCSP/mongoose-tutorial
andikan
May 08, 2014
Tweet
Share
More Decks by andikan
See All by andikan
Deployment and Others Tutorial
andikan
1
670
Other Decks in Programming
See All in Programming
AI時代の認知負荷との向き合い方
optfit
0
150
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
420
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
200
MUSUBIXとは
nahisaho
0
130
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
190
「ブロックテーマでは再現できない」は本当か?
inc2734
0
830
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.1k
AtCoder Conference 2025
shindannin
0
1k
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
Basic Architectures
denyspoltorak
0
660
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
680
Featured
See All Featured
Side Projects
sachag
455
43k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
770
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Become a Pro
speakerdeck
PRO
31
5.8k
Navigating Weather and Climate Data
rabernat
0
100
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
410
BBQ
matthewcrist
89
10k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Designing for Performance
lara
610
70k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
180
Transcript
Cloud Computing-Based Service Design and Programming Andy Kuo @andikan 1
DB = DataBase (n.) 資料庫 A database is an organized
collection of data. 2
3
Hello DB! 4
SQL Relational Database 5
NoSQL http://nosql-database.org/ Not Only SQL 6
Volume • Velocity • Variety 7
Key / Value Column Graph Document 8
MongoDB scalable, high-performance, open source NoSQL database • document store
• full index support • replication • querying • map / reduce 9
MongoDB implemented in C++ drivers are available in many language
http://docs.mongodb.org/manual/applications/drivers/ MongoDB Drivers and Client Libraries 10
BSON Binary JSON BSON = JSON + a few additions
• ObjectID • Timestamp • Date 11
MongoDB Terminology Relational DBs MongoDB database database table collection row
(tuple) document (BSON) column field index index primary key _id foreign key 12
Collection Document 13
Download : http://www.mongodb.org/downloads Installation : http://docs.mongodb.org/manual/installation/ Getting Started 14
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/ https://speakerdeck.com/xpsteven/ntu-ccsp-2012fall-node-dot-js-number-3-mongoose Install MongoDB on Windows 15
mongod The primary daemon process for the MongoDB system It
handles data requests, manages data format, and performs background management operations 16
Default dbpath /data/db Can use your custom directory 17
Listen on localhost : 27017 18
admin web console localhost : 28017 19
Connect to mongod By default, mongo looking for a database
server listening on port 27017 on the localhost 20
Welcome to the MongoDB shell Session will use the test
database by default Access with the Javascript Language 21
http://try.mongodb.org/ 22
Name of the current database Display the list of databases
Switch to a new database named cooldb 23
Insert a document into a collection 24
Traverse documents in a collection 25
Methods to create documents 26
Methods to update documents 27
Methods to delete documents 28
Methods to query documents 29
Methods to query documents Query Operators Comparison: $gt, $gte, $in,
$lt, $lte, $ne, $nin Logical: $or, $and, $not, $nor Array: $all, $size, $eleMatch More: http://docs.mongodb.org/manual/reference/operator/query/ 30
Create / Read / Update / Delete CRUD http://docs.mongodb.org/manual/ More
about MongoDB 31
http://docs.mongodb.org/ecosystem/tools/administration-interfaces/ Admin UIs MongoHub RoboMongo Mac OS X Cross-platform 32
ORM Object-relational Mapper ( Relational DB ) ODM Object-document Mapper
( MongoDB ) validations, associations, and other high-level data modeling functions 33
Mongoose Officially supported ODM for Node.js Advanced schema-based features Object
life-cycle management Mongoose http://mongoosejs.com/ 34
Install Mongoose Or install in your express project directory 35
Create Schema - models/user.js Schema Types - String - Number
- Date - Buffer - Boolean - Mixed - ObjectId - Array 36
Connect DB - db.js 37
Require db.js - app.js 38
Routes - app.js 39
Require model - routes/user.js 40
Postman Chrome extension A powerful HTTP Client to test web
services http://www.getpostman.com/ 41
Get all users - routes/user.js GET /users 42
Create a user - routes/user.js POST /users 43
Show a user - routes/user.js GET /users/:id 44
Update a user - routes/user.js POST /users/:id 45
Delete a user - routes/user.js Delete /users/:id 46
https://github.com/NTU-CCSP/mongoose-tutorial Sample Code 47
The versionKey is a property set on each document when
first created by Mongoose. This keys value contains the internal revision of the document. __v http://mongoosejs.com/docs/guide.html#versionKey 48
Query with Mongoose 49
Query with Mongoose 50
Population Pseudo-joins Reference to documents in other collections 51
Population - Schema 52
Population - Saving refs 53
Population - Query 54
Population - Refs to children 55
Population - Query 56
page.fans ? CCSP Facebook Page https://www.facebook.com/ntu.ccsp 57
Mongoose Plugins Re-use schema functionality in your own project -
Auto increment https://github.com/codetunnel/mongoose-auto-increment - Timestamp https://github.com/drudge/mongoose-timestamp 58
Callback Hell - Promises - Async.js https://github.com/caolan/async - Step.js https://github.com/creationix/step
http://callbackhell.com/ 59
Cloud Computing-Based Service Design and Programming Andy Kuo @andikan Thanks
60