Most enterprises have a lot of variety in the data they deal with. Some data is highly structured and other is very unstructured, some data is bound by strict integrity rules and quality constraints and other is free of any restrictions, some data is “hot” – currently very much in demand – and other data can be stone cold. Some data needs to extremely accurate, down to a prescribed number of fractional digits and other is only approximate. Some is highly confidential and other publicly accessible. Some is around in small quantities and other in huge volumes.
Over the years many IT professionals and companies have come to the realization that all this differentiation in data justifies or even mandates a differentiation in how the data is stored and processed. It does not make sense to treat the hottest transactional data in the same way as the archived records from 30 years. Yet many organizations have been doing exactly that: store it all in the enterprise relational database. It works, keeps all data accessible for those rare instances where that really old data is required and most importantly: keeps all data accessible in the same way – through straightforward SQL queries.
The slides presented by the speakers – Pom Bleeksma and Lucas Jellema – are shown here (from SlideShare):
The handson workshop is completely available from GitHub: https://github.com/lucasjellema/sig-nosql-mongodb.
An additional slide deck was discussed – to demonstrate 30 queries side by side, against MongoDB vs Oracle Database SQL. This slide deck includes the MongoDB operations:
•Filter & Sort (find, sort)
•Aggregation ($group, $project, $match, $sort)
•Lookup & Outer Join ($lookup, $arrayElemAt)
•Facet Search ($facet, $bucket, $sortByCount)
•Update (findAndModify, forEach, save, update, upsert, $set, $unset)
•Date and Time operations
•Materialized View ($out)
•Nested documents/tables ($unwind, $reduce)
•Geospatial (ensureIndex, 2dsphere, $near, $geoNear)
•Text Search (createIndex, text, $text, $search)
•Stored Procedures (db.system.js.save, $where)