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
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
450
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1.1k
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
160
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
440
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)
risatube
PRO
4
660
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
130
MCPで実現できる、Webサービス利用体験について
syumai
7
1.9k
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
230
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
18
9.2k
CDK引数設計道場100本ノック
badmintoncryer
2
560
AI Ramen Fight
yusukebe
0
110
PHPカンファレンス関西2025 基調講演
sugimotokei
5
940
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
301
21k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Building Adaptive Systems
keathley
43
2.7k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Visualization
eitanlees
146
16k
Documentation Writing (for coders)
carmenintech
72
4.9k
How GitHub (no longer) Works
holman
314
140k
Designing for Performance
lara
610
69k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
850
Unsuck your backbone
ammeep
671
58k
Facilitating Awesome Meetings
lara
54
6.5k
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