SHiSH Flex/JavaScript notes

Sergiy Shychynov (Sergei Shichinov) Kiev, Ukraine Flex/JavaScript blog (JavaScript, Flex, ActionScript, AS3, AIR) | http://www.linkedin.com/in/shichinov | http://shichinov.moikrug.ru

Monday, June 24, 2013

MongoDB training in Kiev 2013-06

This training took place in Kiev from 2013-05-30 till 2013-06-07



MongoDB training

Audience

Developers, Automated Testing Engineers, operations professionals and anybody interested in deep knowledge of MongoDB.

Preface

MongoDB (from "humongous") is a document-oriented NoSQL database with JSON-style documents written in C++ and using JavaScript for internal purposes. Designed for the data and scalability requirements of modern internet applications, MongoDB features dynamic queries and secondary indexes, fast atomic updates and complex aggregations and support for replication with automatic failover and sharding for scaling horizontally. MongoDB is an open-source and very popular among both developers and operations professionals given its agile and scalable approach.

Necessary knowledge

Software engineering. JavaScript core (ECMA-262 standard). Basic concept of databases.
Relational database management system (RDBMS) and SQL will be advantage.

Training Description

The training describes base concepts, features and syntax of MongoDB. It gives theoretical and practical information about MongoDB, observe best practices and typical issues and give you the way to develop horizontally scalable and highly available web applications with automated failover, working with humongous set of data.

Training goals

The training go over basic installation, «schema design», querying, inserting and updating data, indexing and working with aggregation framework. It also covers working in sharded and replicated environments and observe the latest MongoDB features like Geospatial Indexes, Grid FS, Text search, Time To Live (TTL) and Caped collections.
After completing this course attendee will be able to do everything from «Training Agenda» as well as using documentation for reference and further education.

Training Agenda:

N
Chapter
Duration (Hrs)
Lecture
Practice
1.     
Introduction:
·        Course info, agenda, environment description,
·        NoSQL, Mongo DB overview, design goals,
·        Mongo shell, JSON-BSON quick intro,
·        Mongo install, mongod parameters, MongoDB config
·        tools,
·        simple REST interface,
o   can be used by clients written in Javascript;
o   uses internally Server-side JavaScript for certain options such as Map-Reduce, Group, $where query, eval ;
o   has a shell that is based on Javascript for administrative purposes;
o   officially supports JavaScript based server Node.js
  • Drivers for C, C++, C#, Ruby, Python, PHP, Perl, Java, JavaScript, Node.js, Erlang...
  •  EPAM MongoDB Competency Center
2 h
1 h
2.     
CRUD:
·        Creating, Reading, Updating and Deleting data.
·        Mongo shell query operators, update operators.
·        Few commands.
·        Capped Arrays.
1.5 h
1.5 h
3.     
·        MongoDB shell JavaScript: Cursors, Commands.
·        uses internally Server-side JavaScript for
o   $where query, Map-Reduce, Group,
o   eval;
·        BSON
·        MongoDB Extended JSON
·        MongoDB Document Types
·        can be used by clients written in Javascript: e.g. officially supports JavaScript based server Node.js
·        New in MongoDB 2.4 (V8)
1.5 h
1.5 h
4.     
Aggregation framework:
·        Goals,
·        pipeline,
·        comparison with SQL.
1.5 h
1.5 h
5.     
Schema Design:
·        Data Modeling Patterns,
o   Embedded One-to-One Relationships
o   Embedded One-to-Many
o   Referenced One-to-Many
o   Data for Atomic Operations
o   Tree Structures with Parent References
o   Tree Structures with Child References
o   Tree Structures with an Array of Ancestors
o   Tree Structures with Materialized Paths
o   Tree Structures with Nested Sets
o   Data to Support Keyword Search
·        Case studies and tradeoffs. ???
2 h
1 h
6.     
Performance & query optimization:
·        using indexes,
·        monitoring and understanding performance,
·        Read/Write performance.
1.5 h
1.5 h
7.     
Advanced aggregation:
·        Group,
·        Using Map-Reduce for complex aggregation.

Advanced collections:
·        Caped collections,
·        Time To Live (TTL).
1 h
2 h
8.     
Replication & Sharding overview
·        Replication
o   Replica sets Setup
o   How replication works
o   Drivers and replication
o   Connections and failover
o   Write concern
o   Read scaling
o   Tagging
·        Sharding
o   Sharding Setup
o   Writing to a sharded cluster
o   Querying and indexing a shard cluster
o   Shard query types
o   Indexing
o   Choosing a shard key
o   Hashed Index and Sharding with a Hashed Shard Key
1 h
2 h
9.     
Advanced features:
·        Geospatial Indexes
·        Using Grid FS for storing and retrieving very large files
·        Text Search
1 h
1 h
Final Exam
·        query task
·        update task
·        aggregation task
·        indexing task
·        complex task* (instead of 4 previous)
·        schema design question
·        sharding question

1 h
Total:

13 h
14 h


Few of the lectures of that training have been recorded and are available there:

YouTube: http://www.youtube.com/playlist?list=PL2FJ2G4VsuCoZTjo1ExW8ZOVQ9_ywRx0B


Kiev 2013-06, lesson 1 - Introduction, Installation
MongoDB training, Kiev 2013-06, lesson 2 - Tools MongoDB training 2013-05. Part2. Questions: introduction.
MongoDB training 2013-05. Part2. Tools.
MongoDB training, Kiev 2013-06, lesson 3 - CRUD - Query language MongoDB training 2013-05. Part3. Questions: tools.
MongoDB training 2013-05. Part3. CRUD1
MongoDB training, Kiev 2013-06, lesson 4 - CRUD - Update language

MongoDB training, Kiev 2013-06, lesson 5 - Aggregation framework

MongoDB training, Kiev 2013-06, lesson 6 - Indexes & performance

MongoDB training, Kiev 2013-06, lesson 7 - Replication

MongoDB training, Kiev 2013-06, lesson 8 - Sharding

MongoDB training, Kiev 2013-06, lesson 9 - final

MongoDB training 2013-06. Part9. No SQL seminar.

Followers