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
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
660
Other Decks in Programming
See All in Programming
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
220
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
400
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1.1k
CSC509 Lecture 03
javiergs
PRO
0
330
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
350
メモリ不足との戦い〜大量データを扱うアプリでの実践例〜
kwzr
1
880
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
180
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
380
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
110
2025年版 サーバーレス Web アプリケーションの作り方
hayatow
23
25k
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
920
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Gamification - CAS2011
davidbonilla
81
5.5k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Navigating Team Friction
lara
189
15k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Automating Front-end Workflow
addyosmani
1371
200k
Mobile First: as difficult as doing things right
swwweet
224
10k
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