com presentations: Mongo MUG Cambridge talk.: slides/mongodb/update-atomicity-shell.xml slides/mongodb/update-intro-shell.xml sql2nosql-mug-cambridge14.xml
[email protected] (Derick Rethans)
| Newsgroups | php.pres |
|---|---|
| Message-ID | <[email protected]> |
Commit: fb1768dfdce6ebacf1b5cece666673e2428c9163 Author: Derick Rethans <[email protected]> Thu, 20 Mar 2014 15:07:43 +0000 Parents: b2b82917a2a78a8b4872557f03fd45314fd73075 Branches: master Link: http://git.php.net/?p=presentations.git;a=commitdiff;h=fb1768dfdce6ebacf1b5cece666673e2428c9163 Log: Mongo MUG Cambridge talk. Changed paths: A slides/mongodb/update-atomicity-shell.xml A slides/mongodb/update-intro-shell.xml A sql2nosql-mug-cambridge14.xml Diff: diff --git a/slides/mongodb/update-atomicity-shell.xml b/slides/mongodb/update-atomicity-shell.xml new file mode 100644 index 0000000..7933c8d --- /dev/null +++ b/slides/mongodb/update-atomicity-shell.xml @@ -0,0 +1,35 @@ +<slide> +<title>Atomicity (ACID): Update operators</title> + +<div effect="fade-out"> +<blurb>Don't do this:</blurb> +<example inline="1"> +r = db.steps.findOne( { 'person' : 'derickr' } ); +*r['steps_made']["20140202"] = r['steps_made']["20140202"] + 7124;* +*db.steps.update( { 'person' : 'derickr' }, r );* +</example> +</div> + +<div effect="fade-in"> +<blurb>Do this instead:</blurb> +<example inline="1"> +db.steps.update( + { 'person' : 'derickr' }, + { '$inc' : { "steps_made.20140202" : 7124 } } +); +</example> + +<blurb>Other operators:</blurb> +<example inline="1">db.steps.update( + { 'person' : 'derickr' }, + { '$addToSet' : { 'tags' : 'openstreetmap' } } +);</example> +<example inline="1">db.steps.update( + { 'person' : 'derickr' }, + { '$push' : { 'tags' : { + '$each' : [ 'mongodb', 'xdebug' ], + '$slice' : -2 + } } } +);</example> +</div> +</slide> diff --git a/slides/mongodb/update-intro-shell.xml b/slides/mongodb/update-intro-shell.xml new file mode 100644 index 0000000..790c39a --- /dev/null +++ b/slides/mongodb/update-intro-shell.xml @@ -0,0 +1,27 @@ +<slide> +<title>Updating data</title> + +<example inline="1"> +db.steps.update( + { 'person' : "derickr" }, + { '$inc' : { "steps_made.20140202" : 712 } }, + { 'upsert' : true } +); +</example> +<blurb>Record after update:</blurb> +<example> +{ + person: "derickr", + steps_made: { + "20140201": 10800, + "20140202": 712, + } +} +</example> + +<list> +<bullet>Atomic *per-document* only</bullet> +<bullet>No transactions</bullet> +<bullet>Can't use other field names in updates</bullet> +</list> +</slide> diff --git a/sql2nosql-mug-cambridge14.xml b/sql2nosql-mug-cambridge14.xml new file mode 100644 index 0000000..0ee6a86 --- /dev/null +++ b/sql2nosql-mug-cambridge14.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<presentation css="10gen-strict.css"> +<topic>mongoDB</topic> +<title>From SQL to NoSQL</title> +<event>Cambridge MongoDB MUG</event> +<location>Cambridge, UK</location> +<date>Mar 20th, 2014</date> +<speaker>Derick Rethans</speaker> +<email>[email protected]</email> +<twitter>derickr</twitter> +<url>http://derickrethans.nl/talks.html</url> +<joindin>http://derickrethans.nl/talks/sql2nosql-mug-cambridge14</joindin> +<slide>slides/mongodb/title.xml</slide> + +<!-- DINOSAUR vs PLATIPUS --> +<slide>slides/mongodb/relational-model.xml</slide> +<slide>slides/mongodb/dinosaur.xml</slide> +<slide>slides/mongodb/normal-form.xml</slide> +<slide>slides/mongodb/normal-form1.xml</slide> +<slide>slides/mongodb/normal-form2.xml</slide> +<slide>slides/mongodb/normal-form3.xml</slide> + +<!-- DIFFERENT NoSQL --> +<slide>slides/mongodb/nosql.xml</slide> +<slide>slides/mongodb/nosql-kv.xml</slide> +<slide>slides/mongodb/nosql-column.xml</slide> +<slide>slides/mongodb/nosql-graph.xml</slide> +<slide>slides/mongodb/nosql-document.xml</slide> +<slide>slides/mongodb/platipus.xml</slide> + +<!-- ACID vs CAP --> +<slide>slides/mongodb/acid.xml</slide> +<slide>slides/mongodb/cap.xml</slide> + +<!-- A FEW NOTES ON MONGODB --> +<slide>slides/mongodb/databasefield.xml</slide> +<slide>slides/mongodb/collections-documents.xml</slide> +<slide>slides/mongodb/document.xml</slide> +<slide>slides/mongodb/mongodb-1nf.xml</slide> +<slide>slides/mongodb/mongodb-2nf.xml</slide> +<slide>slides/mongodb/mongodb-3nf.xml</slide> +<slide>slides/mongodb/insert-intro.xml</slide> +<slide>slides/mongodb/update-intro-shell.xml</slide> +<slide>slides/mongodb/update-atomicity-shell.xml</slide> +<slide>slides/mongodb/update-consistency.xml</slide> + +<slide>slides/mongodb/arbitrary-keys1.xml</slide> +<slide>slides/mongodb/one-to-many2.xml</slide> +<slide>slides/mongodb/one-to-many4.xml</slide> +<slide>slides/mongodb/embed-vs-link.xml</slide> + +<slide>slides/mongodb/writeconcern-consistency.xml</slide> + +<!-- REPLICATION --> +<slide>slides/mongodb/availability.xml</slide> +<slide>slides/mongodb/repl-features.xml</slide> +<slide>slides/mongodb/repl-works-basic.xml</slide> +<slide>slides/mongodb/repl-works-normal.xml</slide> +<slide>slides/mongodb/repl-works-failover.xml</slide> + +<slide>slides/mongodb/repl-eventual-consistency.xml</slide> + +<slide>slides/mongodb/sql2nosql-conclusion.xml</slide> +<slide>slides/mongodb/resources.xml</slide> + +</presentation>