SlideShare a Scribd company logo
1 of 75
Download to read offline
Mark	
  Hillick
Email	
  :	
  mark@10gen.com
Twitter	
  :	
  @markofu
MongoDB Introduction
Wednesday 31 October 12
Apologies
Source: http://blog.stackoverflow.com/wp-content/
uploads/jarrod-lair-1.jpg
Source: http://abcnews.go.com/blogs/headlines/
2012/10/hurricane-sandy-live-updates/
mark != dev
= no prep :(
Wednesday 31 October 12
NoSQL
Wednesday 31 October 12
What?
• A collection of very different products
• Not relational
• No joins
• Currently not using SQL
• Allows much more flexible data structures than RDBMS
Wednesday 31 October 12
10gen & MongoDB
Wednesday 31 October 12
Who? What?
• 10gen created MongoDB in 2007
• Founded by Eliot Horowitz and Dwight Merriman
• Inspired by work on DoubleClick, ShopWiki and Panther
Express
• Over 170 people
• Funded by: Sequoia, Flybridge Capital, Union Square
Ventures & New Enterprise Associates
• Offices in New York (HQ), Palo Alto, London, Dublin and
Sydney
Wednesday 31 October 12
When?
• Coding started fall 2007
• First production site March 2008 - businessinsider.com
• Open Source - AGPL
• Version 0.8 – first official release February 2009
• Version 1.0 – August 2009
• Version 2.0 – September 2011
• Version 2.2 - September 2012
Wednesday 31 October 12
Terminology
RDBMS MongoDB
Table Collection
Row(s) JSON	
  Document
Index Index
Join Embedding	
  &	
  Linking
Partition Shard
Partition	
  Key Shard	
  Key
Wednesday 31 October 12
Data Snippet
Wednesday 31 October 12
Here is a “simple” SQL Model
mysql> select * from book;
+----+----------------------------------------------------------+
| id | title |
+----+----------------------------------------------------------+
| 1 | The Demon-Haunted World: Science as a Candle in the Dark |
| 2 | Cosmos |
| 3 | Programming in Scala |
+----+----------------------------------------------------------+
3 rows in set (0.00 sec)
mysql> select * from bookauthor;
+---------+-----------+
| book_id | author_id |
+---------+-----------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 3 | 3 |
| 3 | 4 |
+---------+-----------+
5 rows in set (0.00 sec)
mysql> select * from author;
+----+-----------+------------+-------------+-------------+---------------+
| id | last_name | first_name | middle_name | nationality | year_of_birth |
+----+-----------+------------+-------------+-------------+---------------+
| 1 | Sagan | Carl | Edward | NULL | 1934 |
| 2 | Odersky | Martin | NULL | DE | 1958 |
| 3 | Spoon | Lex | NULL | NULL | NULL |
| 4 | Venners | Bill | NULL | NULL | NULL |
+----+-----------+------------+-------------+-------------+---------------+
4 rows in set (0.00 sec)
Wednesday 31 October 12
The Same Data in MongoDB
{
"_id" : ObjectId("4dfa6baa9c65dae09a4bbda5"),
"title" : "Programming in Scala",
"author" : [
{
"first_name" : "Martin",
"last_name" : "Odersky",
"nationality" : "DE",
"year_of_birth" : 1958
},
{
"first_name" : "Lex",
"last_name" : "Spoon"
},
{
"first_name" : "Bill",
"last_name" : "Venners"
}
]
}
Wednesday 31 October 12
CRUD Operations
Wednesday 31 October 12
Insert
• You should see something like:
“Inserted 1 record(s) in 2ms”
• db.test.insert({name: “mark”, surname:
“hillick”, weight: 170})
Wednesday 31 October 12
Find
• db.test.find({name: “mark”})
• You should see something like:
“{ "_id":
ObjectId("509108ff707a9dd29312054e"),
"name": "mark", "surname": "mark", "weight":
170 }”
Wednesday 31 October 12
Update
• db.name.update({name: 'mark'}, {$set:
{weight: 169}})
• You should see something like:
“Updated 1 existing record(s) in 0ms”
Wednesday 31 October 12
Delete
• You should see something like:
“Removed 1 record(s) in 0ms”
• db.name.remove({name: “mark”})
Wednesday 31 October 12
Installation
Wednesday 31 October 12
Where to Download
• Binaries: http://www.mongodb.org/downloads
• Subscription: http://ww.mongodb.org/mongodb-
subscriber-edition-download
• SSL & SNMP
• Source: https://github.com/mongodb/mongo
• Packages: RH-type & Ubuntu/Debian
Wednesday 31 October 12
What now?
• How To Install: http://docs.mongodb.org/manual/
installation/
• Release Notes: http://docs.mongodb.org/manual/
release-notes/
Wednesday 31 October 12
Other Documentation
• Binaries - http://www.mongodb.org/downloads
• New: http://docs.mongodb.org/manual/
• Tutorials
• Descriptions
• Configurations
• Security (personal favourite)
• Old: http://www.mongodb.org/display/DOCS/Home
Wednesday 31 October 12
Replication
Wednesday 31 October 12
Types of outage
• Resilience
• Reliability
• Protect against planned & unplanned outages
Wednesday 31 October 12
How MongoDB Replication works
Member	
  1
Member	
  2
Member	
  3
•Set is made up of 2 or more nodes
Wednesday 31 October 12
How MongoDB Replication works
Member	
  1
Member	
  2
PRIMARY
Member	
  3
•Election establishes the PRIMARY
•Data replication from PRIMARY to SECONDARY
Wednesday 31 October 12
How MongoDB Replication works
Member	
  1
Member	
  2
DOWN
Member	
  3
negotiate	
  
new	
  master
•PRIMARY may fail
•Automatic election of new PRIMARY if majority
exists
Wednesday 31 October 12
How MongoDB Replication works
Member	
  1
Member	
  2
DOWN
Member	
  3
PRIMARY
•New PRIMARY elected
•Replication Set re-established
Wednesday 31 October 12
How MongoDB Replication works
Member	
  1
Member	
  2
RECOVERING
Member	
  3
PRIMARY
•Automatic recovery
Wednesday 31 October 12
How MongoDB Replication works
Member	
  1
Member	
  2
Member	
  3
PRIMARY
•Replication Set re-established
Wednesday 31 October 12
Sharding
Wednesday 31 October 12
http://community.qlikview.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/
theqlikviewblog/Cutting-Grass-with-Scissors-_2D00_-2.jpg
Wednesday 31 October 12
http://www.bitquill.net/blog/wp-content/uploads/2008/07/pack_of_harvesters.jpg
Wednesday 31 October 12
MongoDB Scaling - Single Node
write
read
node_a1
Wednesday 31 October 12
Write scaling - add Shards
write
read
shard1
node_c1
node_b1
node_a1
shard2
node_c2
node_b2
node_a2
Wednesday 31 October 12
Write scaling - add Shards
write
read
shard1
node_c1
node_b1
node_a1
shard2
node_c2
node_b2
node_a2
shard3
node_c3
node_b3
node_a3
Wednesday 31 October 12
MongoDB Sharding
• Automatic partitioning and management
• Range based
• Convert to sharded system with no downtime
• Fully consistent
Wednesday 31 October 12
How MongoDB Sharding works
>	
  db.posts.save(	
  {age:40}	
  )
-∞   +∞  
-∞   40 41 +∞  
•Data in inserted
•Ranges are split into more “chunks”
Wednesday 31 October 12
How MongoDB Sharding works
>	
  db.posts.save(	
  {age:40}	
  )
>	
  db.posts.save(	
  {age:50}	
  )
>	
  db.posts.save(	
  {age:60}	
  )
-∞   +∞  
-∞   40 41 +∞  
41 50 51 +∞  
61 +∞  51 60
Wednesday 31 October 12
Split Example
Wednesday 31 October 12
{	
  
	
  	
  name:	
  “Jared”,
	
  	
  email:	
  “jsr@10gen.com”,
}
{	
  
	
  	
  name:	
  “Scott”,
	
  	
  email:	
  
“scott@10gen.com”,
}
{	
  
>	
  db.runCommand(	
  {	
  shardcollection:	
  “test.users”,
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  {	
  email:	
  1	
  }}	
  )
Wednesday 31 October 12
Chunks 1
-∞ +∞
Wednesday 31 October 12
-∞ +∞
dan@10gen.com
jsr@10gen.com
scott@10gen.com
Chunks 2
Wednesday 31 October 12
Chunks 3
-∞ +∞
dan@10gen.com
jsr@10gen.com
scott@10gen.com
Split!
Wednesday 31 October 12
-∞ +∞
dan@10gen.com
jsr@10gen.com
scott@10gen.com
Split!This is a
chunk
This is a
chunk
Chunks 4
Wednesday 31 October 12
-∞ +∞
dan@10gen.com
jsr@10gen.com
scott@10gen.com
Chunks 5
Wednesday 31 October 12
Chunks 6
-∞ +∞
dan@10gen.com
jsr@10gen.com
scott@10gen.com
Split!
Wednesday 31 October 12
Balancing Example
Wednesday 31 October 12
Balancing 1
Shard 1 Shard 2 Shard 3 Shard 4
5
9
1
6
10
2
7
11
3
8
12
4
17
21
13
18
22
14
19
23
15
20
24
16
29
33
25
30
34
26
31
35
27
32
36
28
41
45
37
42
46
38
43
47
39
44
48
40
mongos
balancer
config
config
config
Chunks!
Wednesday 31 October 12
Balancing 2
mongos
balancer
config
config
config
Shard 1 Shard 2 Shard 3 Shard 4
5
9
1
6
10
2
7
11
3
8
12
4
21 22 23 24 33 34 35 36 45 46 47 48
ImbalanceImbalance
Wednesday 31 October 12
Balancing 3
mongos
balancer
Move chunk 1 to
Shard 2
config
config
config
Shard 1 Shard 2 Shard 3 Shard 4
5
9
1
6
10
2
7
11
3
8
12
4
21 22 23 24 33 34 35 36 45 46 47 48
Wednesday 31 October 12
Balancing 4
mongos
balancer
config
config
config
Shard 1 Shard 2 Shard 3 Shard 4
5
9
6
10
2
7
11
3
8
12
4
21 22 23 24 33 34 35 36 45 46 47 48
1
Wednesday 31 October 12
Balancing 4
mongos
balancer
config
config
config
Shard 1 Shard 2 Shard 3 Shard 4
5
9
6
10
2
7
11
3
8
12
4
21 22 23 24 33 34 35 36 45 46 47 48
1
Wednesday 31 October 12
Balancing 5
mongos
balancer
Chunk 1 now lives on
Shard 2
config
config
config
Shard 1 Shard 2 Shard 3 Shard 4
5
9
16
10
2
7
11
3
8
12
4
21 22 23 24 33 34 35 36 45 46 47 48
Wednesday 31 October 12
Drivers
Wednesday 31 October 12
Documentation & Features
• Doc: http://www.mongodb.org/display/DOCS/Drivers
• Official
• C, C++, Java, PHP, Python, Ruby, Scala & more
• Community
Wednesday 31 October 12
Operators & Indexes
Wednesday 31 October 12
Operators
> var c = db.test.find({x: 20}).skip(20).limit(10)> c.next()
> c.next()
...
$gt, $lt, $gte, $lte, $ne, $all, $in, $nin, $or,
$not, $mod, $size, $exists, $type, $elemMatch
Wednesday 31 October 12
db.blogs.ensureIndex({author:	
  1})
1	
  =	
  ascending
-­‐1	
  =	
  descending
An	
  index	
  on	
  _id	
  is	
  automatic.
For	
  more	
  use	
  ensureIndex:
Creating Indexes
Wednesday 31 October 12
Compound Indexes
db.blogs.save({
	
  	
  author:	
  "James",
	
  	
  ts:	
  new	
  Date()
	
  	
  ...
});
db.blogs.ensureIndex({author:	
  1,	
  ts:	
  -­‐1})
Wednesday 31 October 12
db.blogs.save({
	
  	
  title:	
  "My	
  First	
  blog",
	
  	
  comments:	
  [	
  
	
  	
  	
  	
  {author:	
  "James",	
  ts	
  :	
  new	
  Date()}	
  ]
});
db.blogs.ensureIndex({"comments.author":	
  1})
db.blogs.find({"comments.author":	
  "James"})
Indexing Embedded Arrays
Wednesday 31 October 12
db.blogs.save({
	
  	
  loc:	
  {	
  long:	
  40.739037,	
  lat:	
  40.739037	
  }
});
db.blogs.save({
	
  	
  loc:	
  [40.739037,	
  40.739037]
});
db.blogs.ensureIndex({"loc":	
  "2d"})
Geospatial
• Geo hash stored in B-Tree
• First two values indexed
Wednesday 31 October 12
Security
Wednesday 31 October 12
Documentation & Features
• New: http://docs.mongodb.org/manual/security/
• Linux
• Windows
• AMI
• Authentication
• SSL
• NoSQL solutions behind traditional RDBMs
Wednesday 31 October 12
Future
• Role-based Authentication
• Kerberos
• LDAP (external authorisation)
Wednesday 31 October 12
Roadmap
Wednesday 31 October 12
2.2 Features
• Aggregation Framework (no need for map-reduce)
•m/r single thread @ present
• TTL Collections
• Concurrency Improvements
• Tag Aware Sharding
• Fully Supported Read Semantics
• Improved Authentication
Wednesday 31 October 12
Future
• 2.4
• Security, security, security
• Faster Aggregation
• Hash-based shard keys
• More ops
Wednesday 31 October 12
Get Involved
Wednesday 31 October 12
Where
• Open-Source Community
• Contribute - tell us your thoughts!!!
• Support provided By 10gen & Community on Google
Groups [ groups.google.com/group/mongodb-user]
• jira.mongodb.org: features, commercial support,
security, bugs, drivers etc
Wednesday 31 October 12
Education
Wednesday 31 October 12
https://education.10gen.com/
Learn for Free :)
Wednesday 31 October 12
Meetup Groups
Wednesday 31 October 12
MUGs
• Right Here in Dublin: http://mongodb.meetup.com/
cities/ie/dublin/ :)
• Complete List: http://www.mongodb.org/display/
DOCS/MongoDB+User+Groups+(MUGs)
Wednesday 31 October 12
Dublin
• Next MeetUp: Thursday, December 6th @ EngineYard
• Poll: http://www.meetup.com/DublinMUG/polls/
Source: http://www.feedhenry.com Source: http://www.iamstaggered.com/wp-content/
uploads/2011/03/dublin.jpg
Wednesday 31 October 12
Finally
Wednesday 31 October 12
Thanks
Source: http://smallbiztrends.com/wp-content/uploads/
2010/01/question-things.jpg
Wednesday 31 October 12

More Related Content

Similar to Introduction to MongoDB

Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLBack to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLJoe Drumgoole
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Managing Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDBManaging Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDBJason Terpko
 
Build a DataWarehouse for your logs with Python, AWS Athena and Glue
Build a DataWarehouse for your logs with Python, AWS Athena and GlueBuild a DataWarehouse for your logs with Python, AWS Athena and Glue
Build a DataWarehouse for your logs with Python, AWS Athena and GlueMaxym Kharchenko
 
Ben Coverston - The Apache Cassandra Project
Ben Coverston - The Apache Cassandra ProjectBen Coverston - The Apache Cassandra Project
Ben Coverston - The Apache Cassandra ProjectMorningstar Tech Talks
 
Openstack Swift - Lots of small files
Openstack Swift - Lots of small filesOpenstack Swift - Lots of small files
Openstack Swift - Lots of small filesAlexandre Lecuyer
 
Workload Isolation - Asya Kamsky
Workload Isolation - Asya KamskyWorkload Isolation - Asya Kamsky
Workload Isolation - Asya KamskyMongoDB
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nltieleman
 
Cassandra and Spark
Cassandra and SparkCassandra and Spark
Cassandra and Sparknickmbailey
 
Black friday logs - Scaling Elasticsearch
Black friday logs - Scaling ElasticsearchBlack friday logs - Scaling Elasticsearch
Black friday logs - Scaling ElasticsearchSylvain Wallez
 
DynamoDB In-depth & Developer Drill Down
DynamoDB In-depth & Developer Drill Down DynamoDB In-depth & Developer Drill Down
DynamoDB In-depth & Developer Drill Down Amazon Web Services
 
MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?
MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?
MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?MongoDB
 
MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?
MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?
MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?MongoDB
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User GroupChris Harris
 
MySQL partitioning performance
MySQL partitioning performanceMySQL partitioning performance
MySQL partitioning performanceTommy Đột
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nlbartzon
 
Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014Grid Dynamics
 

Similar to Introduction to MongoDB (20)

Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLBack to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Managing Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDBManaging Data and Operation Distribution In MongoDB
Managing Data and Operation Distribution In MongoDB
 
Build a DataWarehouse for your logs with Python, AWS Athena and Glue
Build a DataWarehouse for your logs with Python, AWS Athena and GlueBuild a DataWarehouse for your logs with Python, AWS Athena and Glue
Build a DataWarehouse for your logs with Python, AWS Athena and Glue
 
Ben Coverston - The Apache Cassandra Project
Ben Coverston - The Apache Cassandra ProjectBen Coverston - The Apache Cassandra Project
Ben Coverston - The Apache Cassandra Project
 
Openstack Swift - Lots of small files
Openstack Swift - Lots of small filesOpenstack Swift - Lots of small files
Openstack Swift - Lots of small files
 
lecture1.ppt
lecture1.pptlecture1.ppt
lecture1.ppt
 
Workload Isolation - Asya Kamsky
Workload Isolation - Asya KamskyWorkload Isolation - Asya Kamsky
Workload Isolation - Asya Kamsky
 
Se2017 query-optimizer
Se2017 query-optimizerSe2017 query-optimizer
Se2017 query-optimizer
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
Cassandra and Spark
Cassandra and SparkCassandra and Spark
Cassandra and Spark
 
Black friday logs - Scaling Elasticsearch
Black friday logs - Scaling ElasticsearchBlack friday logs - Scaling Elasticsearch
Black friday logs - Scaling Elasticsearch
 
DynamoDB In-depth & Developer Drill Down
DynamoDB In-depth & Developer Drill Down DynamoDB In-depth & Developer Drill Down
DynamoDB In-depth & Developer Drill Down
 
MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?
MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?
MongoDB.local Austin 2018: Workload Isolation: Are You Doing it Wrong?
 
MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?
MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?
MongoDB.local DC 2018: Workload Isolation: Are You Doing It Wrong?
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User Group
 
MySQL partitioning performance
MySQL partitioning performanceMySQL partitioning performance
MySQL partitioning performance
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014
 

More from Mark Hillick

Peeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security OnionPeeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security OnionMark Hillick
 
PHP Loves MongoDB - Dublin MUG (by Hannes)
PHP Loves MongoDB - Dublin MUG (by Hannes)PHP Loves MongoDB - Dublin MUG (by Hannes)
PHP Loves MongoDB - Dublin MUG (by Hannes)Mark Hillick
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on NetscalerMark Hillick
 
Scareware Traversing the World via Ireland
Scareware Traversing the World via IrelandScareware Traversing the World via Ireland
Scareware Traversing the World via IrelandMark Hillick
 
Implementing a WAF
Implementing a WAFImplementing a WAF
Implementing a WAFMark Hillick
 
CTF: Bringing back more than sexy!
CTF: Bringing back more than sexy!CTF: Bringing back more than sexy!
CTF: Bringing back more than sexy!Mark Hillick
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!Mark Hillick
 

More from Mark Hillick (8)

Peeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security OnionPeeling back your Network Layers with Security Onion
Peeling back your Network Layers with Security Onion
 
PHP Loves MongoDB - Dublin MUG (by Hannes)
PHP Loves MongoDB - Dublin MUG (by Hannes)PHP Loves MongoDB - Dublin MUG (by Hannes)
PHP Loves MongoDB - Dublin MUG (by Hannes)
 
HackEire 2009
HackEire 2009HackEire 2009
HackEire 2009
 
Integrated Cache on Netscaler
Integrated Cache on NetscalerIntegrated Cache on Netscaler
Integrated Cache on Netscaler
 
Scareware Traversing the World via Ireland
Scareware Traversing the World via IrelandScareware Traversing the World via Ireland
Scareware Traversing the World via Ireland
 
Implementing a WAF
Implementing a WAFImplementing a WAF
Implementing a WAF
 
CTF: Bringing back more than sexy!
CTF: Bringing back more than sexy!CTF: Bringing back more than sexy!
CTF: Bringing back more than sexy!
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

Introduction to MongoDB