com presentations: PHP Dublin talk: mongodb-phpdub18.xml slides/mongodb/aggr-facet.xml slides/mongodb/aggr-pipelines-ops.xml slides/mongodb/atlas.jpg slides/mongodb/atlas.xml slides/mongodb/considerations.xml slides/mongodb/data-model.xml slides/mongodb/document-validation-jsonschema.xml slides/mongodb/document-validation.xml slides/mongodb/indexes-new.xml slides/mongodb/indexes-special.xml slides/mongodb/repl-eventual-consistency.xml slides/temp

[email protected] (Derick Rethans) Fri, 23 Mar 2018 11:50:59 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    35a1e04a1836e8740cae448ff785a331ee20abfa
Author:    Derick Rethans <[email protected]>         Fri, 23 Mar 2018 11:50:59 +0000
Parents:   820638cccd927db15fbf1b3c03af1432a596e9e7
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=35a1e04a1836e8740cae448ff785a331ee20abfa

Log:
PHP Dublin talk

Changed paths:
  A  mongodb-phpdub18.xml
  M  slides/mongodb/aggr-facet.xml
  M  slides/mongodb/aggr-pipelines-ops.xml
  A  slides/mongodb/atlas.jpg
  A  slides/mongodb/atlas.xml
  M  slides/mongodb/considerations.xml
  M  slides/mongodb/data-model.xml
  A  slides/mongodb/document-validation-jsonschema.xml
  M  slides/mongodb/document-validation.xml
  M  slides/mongodb/indexes-new.xml
  M  slides/mongodb/indexes-special.xml
  M  slides/mongodb/repl-eventual-consistency.xml
  A  slides/template.xml
diff_35a1e04a1836e8740cae448ff785a331ee20abfa.txt (text/plain, 8.3 KB)
diff --git a/mongodb-phpdub18.xml b/mongodb-phpdub18.xml
new file mode 100644
index 0000000..3cb80c2
--- /dev/null
+++ b/mongodb-phpdub18.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="10gen-strict.css">
+<topic>MongoDB</topic>
+<title>Getting the Most out of MongoDB</title>
+<event>PHP Dublin</event>
+<location>Dublin, Ireland</location>
+<date>March 20, 2018</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<url>http://derickrethans.nl/talks.html</url>
+<joindin>https://joind.in/23650</joindin>
+<slide>slides/mongodb/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+** Terms **
+
+<slide>slides/mongodb/collections-documents.xml</slide>
+
+<slide>slides/mongodb/document-title.xml</slide>
+<slide>slides/mongodb/document-simple.xml</slide>
+<slide>slides/mongodb/document-complex.xml</slide>
+
+<slide>slides/mongodb/collections-title.xml</slide>
+<slide>slides/mongodb/collections.xml</slide>
+
+<slide>slides/mongodb/index-title.xml</slide>
+<slide>slides/mongodb/index.xml</slide>
+
+** From PHP **
+
+<slide>slides/mongodb/new-architecture.xml</slide>
+<slide>slides/mongodb/phplib-intro.xml</slide>
+<slide>slides/mongodb/phplib-crud.xml</slide>
+<slide>slides/mongodb/query-side-by-side.xml</slide>
+
+<slide>slides/mongodb/keys-title.xml</slide>
+<slide>slides/mongodb/data-model.xml</slide>
+<slide>slides/mongodb/considerations.xml</slide>
+
+<RETRYABLEWRITES/>
+<ATLAS/>
+
+Common Patterns
+
+- RDBMS-normalisation.
+
+<slide>slides/mongodb/eav2.xml</slide>
+<slide>slides/mongodb/eav3.xml</slide>
+
+<slide>slides/mongodb/document-validation.xml</slide>
+<slide>slides/mongodb/document-validation-jsonschema.xml</slide>
+
+<slide>slides/mongodb/index-title.xml</slide>
+<slide>slides/mongodb/indexes-new.xml</slide>
+<slide>slides/mongodb/indexes-php.xml</slide>
+<slide>slides/mongodb/indexes-explain2.xml</slide>
+<slide>slides/mongodb/indexes-special.xml</slide>
+
+<!-- A/F -->
+<slide>slides/mongodb/aggregation-title.xml</slide>
+<slide>slides/mongodb/aggr-pipeline.xml</slide>
+<slide>slides/mongodb/aggr-our-example-data.xml</slide>
+<slide>slides/mongodb/aggr-pipelines-ops.xml</slide>
+
+<slide>slides/mongodb/aggr-favourite-german-beer.xml</slide>
+<slide>slides/mongodb/aggr-favourite-german-beer-result.xml</slide>
+
+<slide>slides/mongodb/aggr-facet.xml</slide>
+<slide>slides/mongodb/aggr-facet-result.xml</slide>
+
+<!-- REPLICATION -->
+<slide>slides/mongodb/replication-title.xml</slide>
+<slide>slides/mongodb/repl-features.xml</slide>
+<slide>slides/mongodb/repl-works-normal.xml</slide>
+<slide>slides/mongodb/repl-eventual-consistency.xml</slide>
+
+<slide>slides/mongodb/atlas.xml</slide>
+
+<slide>slides/mongodb/questions.xml</slide>
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/slides/mongodb/aggr-facet.xml b/slides/mongodb/aggr-facet.xml
index b5a6944..b344b4b 100644
--- a/slides/mongodb/aggr-facet.xml
+++ b/slides/mongodb/aggr-facet.xml
@@ -1,8 +1,6 @@
 <slide>
 <title>Give an *overview* of number of beers per ~x~</title>
 
-<blurb>Facets, new in MongoDB 3.4.</blurb>
-
 <div effect="fade-in">
 <break/>
 <blurb>Pipeline:</blurb>
diff --git a/slides/mongodb/aggr-pipelines-ops.xml b/slides/mongodb/aggr-pipelines-ops.xml
index 284a1dd..e33ee75 100644
--- a/slides/mongodb/aggr-pipelines-ops.xml
+++ b/slides/mongodb/aggr-pipelines-ops.xml
@@ -6,9 +6,9 @@
     <bullet>%$project%</bullet>
     <bullet>%$group%</bullet>
     <bullet>%$unwind%</bullet>
-    <bullet>%$sample% (new in 3.2)</bullet>
-    <bullet>%$sortByCount% (new in 3.4)</bullet>
-    <bullet>%$bucket% / %$bucketAuto% (new in 3.4)</bullet>
+    <bullet>%$sample%</bullet>
+    <bullet>%$sortByCount%</bullet>
+    <bullet>%$bucket% / %$bucketAuto%</bullet>
     <bullet>%$geoNear%</bullet>
     <bullet>%$sort%, %$limit%, %$skip%</bullet>
 </list>
diff --git a/slides/mongodb/atlas.jpg b/slides/mongodb/atlas.jpg
new file mode 100644
index 0000000..a23e119
Binary files /dev/null and b/slides/mongodb/atlas.jpg differ
diff --git a/slides/mongodb/atlas.xml b/slides/mongodb/atlas.xml
new file mode 100644
index 0000000..84d9dd3
--- /dev/null
+++ b/slides/mongodb/atlas.xml
@@ -0,0 +1,17 @@
+<slide style="imagebg" background="atlas.jpg">
+<title>MongoDB Atlas</title>
+
+<break lines="5"/>
+<div class="center-blurb-wide">
+<blurb>MongoDB's Database as a Service</blurb>
+<list>
+	<bullet>Automated Operations</bullet>
+	<bullet>Easy to scale up and down</bullet>
+	<bullet>Managed Upgrades</bullet>
+	<bullet>Continuous Backups</bullet>
+	<bullet>Performance Monitoring</bullet>
+	<bullet>*Free Tier*</bullet>
+</list>
+</div>
+</slide>
+
diff --git a/slides/mongodb/considerations.xml b/slides/mongodb/considerations.xml
index f4995b2..1f2fd5a 100644
--- a/slides/mongodb/considerations.xml
+++ b/slides/mongodb/considerations.xml
@@ -1,6 +1,5 @@
-<slide style="imagebg">
+<slide style="imagebg" background="keys.jpg">
 <title>Schema Considerations</title>
-<image align="center" filename="keys.jpg"/>
 <break lines="10"/>
 <div class="center-blurb-wide">
 <list>
diff --git a/slides/mongodb/data-model.xml b/slides/mongodb/data-model.xml
index c53de0b..4c3fdec 100644
--- a/slides/mongodb/data-model.xml
+++ b/slides/mongodb/data-model.xml
@@ -5,7 +5,7 @@
 <list>
 	<bullet>No relations between collections</bullet>
 	<bullet>No foreign keys</bullet>
-	<bullet>No transactions</bullet>
+	<bullet>|777777|No| transactions</bullet>
 </list>
 </div>
 <break lines="2"/>
diff --git a/slides/mongodb/document-validation-jsonschema.xml b/slides/mongodb/document-validation-jsonschema.xml
new file mode 100644
index 0000000..94c8f35
--- /dev/null
+++ b/slides/mongodb/document-validation-jsonschema.xml
@@ -0,0 +1,28 @@
+<slide>
+<title>Enforcing Schema</title>
+
+<blurb>Allows you to set a *validator*, a query that every new or updated document must match</blurb>
+<blurb>Example with JSON schema:</blurb>
+<example inline="1">
+db.runCommand( {
+    collMod: "whisky",
+    validator: {
+        $jsonSchema: {
+            bsonType: "object",
+            *required*: [ "name", "age" ],
+            properties: {
+                name: {
+                    *bsonType*: "string",
+                    description: "The name of the whisky.",
+                },
+                age: {
+                    bsonType: "int",
+                    *minimum: 3,*
+                    description: "The age in years of the whisky".
+                }
+            }
+        }
+    },
+} )
+</example>
+</slide>
diff --git a/slides/mongodb/document-validation.xml b/slides/mongodb/document-validation.xml
index dbbb792..b351316 100644
--- a/slides/mongodb/document-validation.xml
+++ b/slides/mongodb/document-validation.xml
@@ -14,6 +14,4 @@ db.runCommand( {
 	validationAction: *"warn"*, // error, 
 } )
 </example>
-<break/>
-	<blurb>MongoDB 3.6 adds JSON Schema support</blurb>
 </slide>
diff --git a/slides/mongodb/indexes-new.xml b/slides/mongodb/indexes-new.xml
index e39ad74..a2cfafc 100644
--- a/slides/mongodb/indexes-new.xml
+++ b/slides/mongodb/indexes-new.xml
@@ -1,7 +1,6 @@
-<slide style="imagebg">
+<slide style="imagebg" background="index.jpg">
 <title>Indexes</title>
 
-<image align="center" filename="index.jpg"/>
 <break lines="5"/>
 <div class="center-blurb-wide">
 <list>
diff --git a/slides/mongodb/indexes-special.xml b/slides/mongodb/indexes-special.xml
index 83467da..92f3b0f 100644
--- a/slides/mongodb/indexes-special.xml
+++ b/slides/mongodb/indexes-special.xml
@@ -1,7 +1,6 @@
-<slide style="imagebg">
+<slide style="imagebg" background="index.jpg">
 <title>Special Indexes</title>
 
-<image align="center" filename="index.jpg"/>
 <break lines="5"/>
 <div class="center-blurb-wide">
 <blurb>Geospatial Indexes (2d, and 2dsphere)</blurb>
diff --git a/slides/mongodb/repl-eventual-consistency.xml b/slides/mongodb/repl-eventual-consistency.xml
index cc2cd4a..1072f24 100644
--- a/slides/mongodb/repl-eventual-consistency.xml
+++ b/slides/mongodb/repl-eventual-consistency.xml
@@ -13,6 +13,7 @@
     <bullet>Warning!
 		<list>
 			<bullet>Secondaries may be out of date</bullet>
+			<bullet>Failover may happen while you're trying to write</bullet>
 			<bullet>Not appropriate for all applications</bullet>
 		</list>
 	</bullet>
diff --git a/slides/template.xml b/slides/template.xml
new file mode 100644
index 0000000..60c04b9
--- /dev/null
+++ b/slides/template.xml
@@ -0,0 +1,8 @@
+<slide>
+<title></title>
+
+<list>
+	<bullet></bullet>
+</list>
+
+</slide>