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
NoSQL & MongoDB
Search
Shuai Liu
June 20, 2014
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NoSQL & MongoDB
Shuai Liu
June 20, 2014
More Decks by Shuai Liu
See All by Shuai Liu
Auto-Layout.pdf
liushuaikobe
2
140
Python-intro-2
liushuaikobe
0
87
Python-intro-1
liushuaikobe
0
85
GitRadar——毕业论文答辩
liushuaikobe
0
210
Other Decks in Programming
See All in Programming
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
180
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
どこまでゆるくて許されるのか
tk3fftk
0
440
初めてのKubernetes 本番運用でハマった話
oku053
0
120
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
symfony/aiとlaravel/boost
77web
0
120
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
130
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
220
Creating Composable Callables in Contemporary C++
rollbear
0
200
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
810
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Building AI with AI
inesmontani
PRO
1
1.1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Exploring anti-patterns in Rails
aemeredith
3
440
Test your architecture with Archunit
thirion
1
2.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
Context Engineering - Making Every Token Count
addyosmani
9
1k
Chasing Engaging Ingredients in Design
codingconduct
0
230
Typedesign – Prime Four
hannesfritz
42
3.1k
Transcript
No-SQL & mongoDB @liushuaikobe
What’s No-SQL?
Strozzi NoSQL (1998) RDBMS operator-stream paradigm(PIPE) a set of shell
routines that access normal files of the OS Carlo Strozzi
No-SQL == Not Have SQL
No-SQL == Not Have Structured Query Language SQL
…departs from the relational model altogether; it should therefore have
been called more appropriately 'NoREL'.
A meetup@San Francisco ——"open source, distributed, non relational databases” Organized
by Johan Oskarsson(Last.fm) Google's Bigtable & Amazon's Dynamo Eric Evans(then in RackSpace) reintroduced “No-SQL”
No-SQL == non-relational
Eric Evans My regret however isn't about what the name
says, it's about what it doesn't.
no:sql(east) conference@ Atlanta
> select fun, profit > from real_world > where relational=false;
No-SQL == Not Only SQL
CAP Theorem (Eric Brewer) Consistency Partition Tolerance Availability
BASE neutral A C I D PH S B E
A
asically vailable ventually Consistent oft-state S B E A
Why No-SQL? Traditional RDBMS —— CA Do We really need
Transaction? Horizontal-Scale
List Of NoSQL DBs Wide Column Store Document Store Key
Value / Tuple Store Graph Databases …
mongoDB
10gen established in 2007, @New York originally aimed to build
a Paas architecture released MongoDB, maintaining it
MongoDB Inc. (2013.08) established in 2007, @New York originally aimed
to build a Paas architecture released MongoDB, maintaining it
MongoDB document-oriented(BSON) Storage schema-free high-performance build for scale
Document
Data-Model Design References Embedded
Reference
Embedded
which way is better? No Define answer.
A Instance
{ "actor_attributes" : {
"name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" }, "repository" : { "fork" : false, "watchers" : 0, "description" : "Oh, nothing, nothing", ... "id" : 13155632, "name" : "breakneck" }, "url" : "https://github.com/dtao/breakneck/compare/dccee09561...38984e5dce", "created_at" : "2013-‐09-‐28T18:00:06-‐07:00", "actor" : "dtao", "public" : true, "type" : "PushEvent", "payload" : { "shas" : [ [ ... ] ], "head" : "38984e5dce1a21b778d4c26bde493270b4625662", "ref" : "refs/heads/master", "size" : 1 } }
RDBMS——ERD Actor Repo Event 1..n 1..1 1..n 1..1
While in mongo… { "_id" : ObjectId("5287d3e947e36f2280584179") "actor_attributes"
: { "name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" } } { "_id" : ObjectId("5287d3e947e36f22805844b3") "actor_attributes" : { "name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" } } { "_id" : ObjectId("5287d3e947e36f22805844c9") "actor_attributes" : { "name" : "Dan Tao", "company" : "Google", ... "email" : "
[email protected]
" } } Actor
{ "_id" : ObjectId("5287d41647e36f2280586033"), “repository" : {
"fork" : false, ... "name" : "breakneck" }, "actor" : "Sam", … "payload" : { "shas" : [ [ ... ] ], "ref" : "refs/heads/master", "size" : 1 } } Event { "_id" : ObjectId("5287d41647e36f2280586035"), “repository" : { "fork" : false, ... "name" : "breakneck" }, "actor" : "Tom", … "payload" : { "shas" : [ [ ... ] ], "ref" : "refs/heads/master", "size" : 1 } } { "_id" : ObjectId("5287d41647e36f2280586537"), “repository" : { "fork" : false, ... "name" : "breakneck" }, "actor" : "Mike", … "payload" : { "shas" : [ [ ... ] ], "ref" : "refs/heads/master", "size" : 1 } }
Summary No-SQL => No? No! Why No-SQL? CAP & BASE
MongoDB (Inc.) Schema design
How to Choose? Depending on your needs…
Thanks @liushuaikobe
Q & A http:/ /www.girlsgonestrong.com/video-qa/