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
andikan
May 08, 2014
Programming
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MongoDB and Mongoose Tutorial
2014/05/08 @ NTU CCSP
https://github.com/NTU-CCSP/mongoose-tutorial
andikan
May 08, 2014
More Decks by andikan
See All by andikan
Deployment and Others Tutorial
andikan
1
680
Other Decks in Programming
See All in Programming
Webフレームワークの ベンチマークについて
yusukebe
0
170
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.2k
Vite+ Unified Toolchain for the Web
naokihaba
0
310
Oxlintのカスタムルールの現況
syumai
6
1.1k
Claspは野良GASの夢をみるか
takter00
0
190
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
140
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
net-httpのHTTP/2対応について
naruse
0
490
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
100
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
6.4k
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
780
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
RailsConf 2023
tenderlove
30
1.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
430
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
The Cult of Friendly URLs
andyhume
79
6.9k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Rails Girls Zürich Keynote
gr2m
96
14k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
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