MongoDB - Full

25.05.2020
|
Divnesh BLOG
mongodb
mdb
Mongo Database

Introduction :

From past few years, the data generation, storage and analysis has been increasing tremendously. Traditional databases cannot deal with flexible data storage and the cost of scaling up is also high.

Enterprises need an infrastructure with the following capabilities to address these challenges:

  • Database to develop faster, deploy easier and scale bigger with flexible schema
  • Free and open source database
  • Rich query language for data read and write operations (CRUD) and aggregations
  • Indexes for faster query retrieval time

This course introduces you to MongoDB which is a free and open source NoSQL document database that provides an infrastructure with the above capabilities. In addition, MongoDB is suitable for heavy read operations.

It mainly focuses on MongoDB query language for document level operations, aggregation framework and indexes.

Business requirements change over time, affecting the data models and associated schemas in relational databases. MongoDB offers flexible schema to tackle this issue.

Appendix :

  • Install and configure MongoDB
  • Design data model for product catalog
  • Perform DML operations on MongoDB collections
  • Execute queries using aggregation operators
  • Build, Monitor and analyze queries for performance using indexes
eCommerce product catalog scenario

To manage an eCommerce system, a product catalog is needed that represents each product category with its respective attributes.

While using RDBMS, you need to create tables for each product category as shown

data:image/png;base64,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

Also, schema needs to be defined upfront before loading the data.

Observation:

  1. RDBMS handles different data models by creating individual tables for each of them.

  2. This results in huge number of tables in the database. 

Challenge:

RDBMS cannot handle schema(table structure) changes in the tables efficiently.

Solution:

MongoDB addresses this challenge by offering a flexible schema. All the products irrespective of the schema can be stored using a single entity as shown:

data:image/png;base64,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

The other advantages of MongoDB when compared to RDBMS are:

data:image/png;base64,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ilIvH1dVVfHdd9/RunVr0ccjRowQCjAvL4927drx3nvvMXjwYNzd3bn77rt59dVXXZTyE088Qa9evQDVE92mTRtyc3NdjK3nn3+eLl26XMILmhGdn5/P8OHDadeuHffffz+tW7fmlVde4cKFCwwcOJBGjRrRokULwaMJCQns3bsXNzc35s2bR+/evXF3d2fKlCmkpaXh5ubG3r17AcS3tG7dmm+//VaUnZqaSq9evXB3d+ehhx6iVatWfPXVVwQGBnLHHXfQqFEjHnjgATp06MCsWbMoKyvjzjvvFLIKqhHwz3/+k/79+4vf7rvvPl599VUWLFiAu7s7L774IufPn6e8vJz333+fli1b4u7uTsuWLZkyZYrLKQ+RkZE8+eSTuLu7c//999OqVSuaNm3KgQMHBO/XbjuAqKgoXn75Zdzd3bnvvvto06YNDRo0EB7KmJgYWrZsSatWrejQoQNt2rThueeeIzExEVDDSpo0acItt9zCAw88gLu7O0uWLAFUD2OzZs1o164dbdu2pW3btmzYsAGbzeayX+hydLWGuqbrs7KyaNOmDXPnzgUQetnZgNF0wUMPPUSLFi2ELn/ggQfYv3+/SOvr68utt96Kv78/7u7u3HvvvTRt2pTVq1eLtnX+Fq2tjx07RuPGjZk/fz6vv/467u7uNGvWjClTpoj65OXl8cgjj9CiRQvRvm3atCEhIUEYVPPnz+emm27Cw8ODf/zjH7i7u9OqVSs2bdoE1HjZQkJCBI/cd9993HXXXbRq1Yrjx48DqqHeoEEDYQABrFixQrzTrl07+vbtK2SwtlGqORU2bdokZMrd3Z0777yTvXv3smXLFm6//XYaNmxIhw4dcHd3Z8KECVgsFu6//35Gjx7NF198IepXUlJC586dxaqaZjANHDiQBx98UBjwVVVVfP/999x111089NBDog8iIyN58MEHcXNzE7qoa9eulJSU8PXXX/PEE0+4TP5XrVqFm5sboaGhgOr5bdCgAbt27RLfounGkJAQHnnkEfH73XffzYULF7DZbFgsFkpLS3n//fdFuffddx8333wzb775pqhzbT6z2WxMnDiRm266SbRPo0aNRMgGwPnz53Fzc2PSpEn06NEDd3d3/va3vwk+1tJlZWXRq1cvOnTowIMPPki7du1o2LCh2A9Vm88BLly4wM033yxWy0A1tu+//34+//xzUW83NzdGjBjBmDFjcHd3p3nz5owcOdLlUI0jR47QrFkz3N3d+fvf/84NN9zA5s2bOXr0KC1atBDjmbu7Ox988AGg6vJXX32VOXPm4O7uzpNPPonRaOS9997j5Zdfdqnr7NmzadKkCXl5eVitVqxWKz4+Ptx33324u7vToUMHWrZsydmzZ3nllVdo0KABd955J+7u7jz44INcvHiR+fPni9VNbSISHBxMo0aNiIiIAGDLli387W9/Y/78+XTr1g13d3cRFpuUlESTJk1Eec888wxms1nIeFlZGZ999hnt27cXeveWW25h8ODBQgfU7gdt/JwyZQpt2rQRvPO3v/2NRx99VKT94IMPaNy4sbAJbr31Vry9vamuriYuLo6OHTvi5uYmZLdDhw4oikJYWBhubm7itxYtWjBixAjhWPglxvqvbqjfeOON9XqSmjZtyscff4yiKISHh1/ibX3xxRd57rnnxN+jRo3i9ddfd0lTXl7OggULxCwHVGXu5uZGcnIy4Bo+owntJ598QocOHcTvNpsNf39/4fF44YUXeP/9913KMhqNNG7cmEceeYTIyEjxu91up0mTJgQFBYm/q6uree6554QHtaqqik6dOonlOI18fHzIz89nxYoV3H777S6ePs3YnzJlivjNarXSu3dvXnrpJfFbt27duPXWW5k5c6ZL3vPmzaNx48ZCEEpLS7nnnnv46quvLmmXK6GrNdS1/K1WKy+//DJDhgypNxZTG+DWr18vYnk1uv3224XApqWl8fe//53WrVsLQU1NTeW2227jhx9+AHBRYppwlpaWMnDgQG6//XZ27Ngh8m7Tpo0IcVIUNcZX82BCjULduHEjoBpLzzzzDC1btiQlJUXU6aabbhL8W1JSQseOHYVRq9Hf//53xowZA1xqqOfn5/PQQw+5vOPt7c1tt91GfHy8+BatvTQ+mTFjBk2aNBHGWkVFBa1bt2bw4MHY7XaysrJ47LHHaNmyJTqdDlC9B3fccQdz5swRZT3++ON069YNRVHjDBs0aEBgYKDox3PnznHrrbcSEhLiYlwCoi49e/Z0mUCWlJTg5eWFyWQCoEOHDi4TE4B9+/bRsGFD/u///o+MjAzxe1paGjfccAP79+8X356fn0+HDh3EJrGCggKefvppl8lweXk5np6eWK1Wpk6dyr333utSXm5uLvfcc4+QVa2e//rXvxg8eLD47bHHHqNp06b4+fm5vD927Fhuv/124RlOSUmhadOmeHp6Aurgfvfdd4u2A4iIiODGG28UYRd1eVWSk5Np3bo1U6dOFe/Fx8dzxx13sHnzZkBdlagt4926deOFF14QsjZhwgReeOEFatM333zj4jFcvXo1t912G1FRUS51uhxdraGuyeHhw4e54YYbRHhLXTpAm4iOHTvWRQd6e3vTpk0bYmJiAAgICKBhw4a88cYbIs306dNp1apVnfpe+64jR47QvHlzHn74YTEGHDx4kBtvvFEYz3l5eS6TQICPP/6Y9u3bi9WWcGYN0wAAIABJREFUhQsX0qhRI5ewyFmzZtGqVSvBEydOnKBp06YuG8X379+Pm5sbZ8+eBWo86po3ftOmTbi5ubkYbtqqrkbOG+UURWHHjh3ccsstXLhwQaRZtWoVHh4egKob7rrrLpfvycjI4I033qB58+YuetBisdC1a1cGDBgAIIzqoUOH8thjj1FRUSE2abZt29ZlvP3f//5HVlYWycnJ3HDDDRw7dsylzC+//JJnn31WGPsAa9eupXHjxoSFhQHqBMjNzY1///vfLu+Gh4dz22238d1334nfJkyYQMuWLcXJbIMHD+bpp5924ZvXX39dGJx1edStVisrV67k9OnT4tmpU6dwc3MT46Ver8fNzY2uXbuKvt22bRtubm5CpxUWFvLMM8+IcR5U/mvevDnz5s0D6vaop6Wlcfvtt7uECWkTRc0xZ7VaadCgAQ899JBop5iYGBo1aiQmpnFxcbi5uQkeBtiwYQMrV64EVPlp3rz5JbZap06duOOOOy7Rb2PGjBETHO2duXPn0rx5c9HnS5YsoWnTpqINtHYJDw8nOzubZs2asXTpUpd8NRmBmj0DK1as4JZbbhE6aM+ePTRs2FDs1dMoISGBBg0auMjmxx9/zFNPPSVWBseOHcs999zjUmavXr3o2rWr+NvZo67tW/ryyy/p0KGDy8r58OHDeeCBB8Q7s2bNEg4jrT4333wzW7duBdSIgEaNGrmkAQgLCxMTI40eeeQRPvzww0vsk6ul39xQ157ZbDYee+yxS+LAt2/fzrRp05gxYwZ9+vThzjvvFOkHDRpEx44dKS4uvuSoxvj4ePHe559/zo033khYWNglRoU2m3vzzTd58cUXLwltgJqNh6NGjRLl2O12dDodt9xyi1Cm5eXl2Gw2bDYbTZo0EYOzs6E+evRoAA4fPsxNN91Eenq6OKfTuV7ff/89t912G+np6WK5pbq6mieffNIlrrcuQ/2NN94Qy3ya8kpJSeG+++5z2bgLaqzk448/jsViucRL+1N0tYa680bCp59+ul4Greu3RYsWMW3aNGbNmsUjjzzCsGHDxPJm27Zt8fb2Ft9bUVHBm2++SZ8+fcSgr+XlvGT92muvMWzYMPGexWJh4sSJtG7dGkVRxGBcXl7O3LlzmTZtGnPmzKFly5bMmjULUA3sli1bCqNc68uOHTsKQ3flypW0bduW+Ph44fXRvCX1hb54enpy9913X9KGTz/9NL6+vkKutD0gdrudiooK7r//fhYtWgQgjuHatWsXrVu3JjExkcrKStq1aydiBi0WC5WVlXTp0oV33nlHtP1jjz0m4vmqqqro3r07r732muCRfv368fzzz9fpndAGwvvuu49evXq5eM40ys7Opn379kydOlXUQavrrbfeKgZHTabqM9Tbt28vDPWAgADuuusuysvLxZGfzsrY2cjSDI28vDzatm3rYkjXZaj//e9/Z8SIEYCqD6xWK2FhYbRs2dJlcAdYvHgx//73v1EUhYEDB4rJuMZjmuzXdlg41/Xrr78WXpzy8nIsFgshISHcdtttLhNHgL179zJlyhRmzpxJnz59uOeee8TxYKNHj+af//wnZWVlQhc4b+SeNm0a06dPZ+LEiTRr1ozdu3e7TJQvR1drqGuG09atW3FzcyM6OlpNX4eDwFlPGwwGpk6dyvTp03n//fdp27atiO/38fGhSZMmYvXMYrFw/Phxbr/9drH65PwttUNfIiMjRZqsrCzatm3L7NmzXd7buXMn06dPZ+bMmYwaNYoOHToIo2T+/PnccccdYoXPYrFw5swZbrzxRrFR9d///rfgHU2Xr1+/noYNG14S+qKFPj777LMuK6egrrDce++9IlTF2cgEdcxo3rw5P/744yXtabfbmTx5Mi1atCA7O1vo+/z8fB5++GG+/PJLQOVtbaypz1B/9NFHsdvtZGdnc+edd7J27VoAysrKXIzj06dPc+ONN7Jt2zbh6VYUhUmTJgme1Ki2oT537lwaNWoEqHJTXl6O3W6nf//+lzjnAFq2bEl4eDh6vZ7bbruNkydPinG3oqKCjh07XhL6UntFAlTjePbs2cycOZPp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

Popularity of MongoDB

MongoDB gained popularity with its flexible schema, scalability and document oriented NoSQL capabilities. In 2013, MongoDB was acclaimed as the "Database Management System of the Year" by DB-Engines.

The Forrester Waveâ„¢: Big Data NoSQL, Q3 2016 whitepaper named MongoDB as a leader amongst popular NoSQL databases.

data:image/png;base64,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

The whitepaper also lists the following facts about MongoDB:

  • Shortlisted by the Enterprise Architecture (EA) pros for its security, services, tooling and document capabilities
  • Popular choice of more than half of the Fortune 100 companies

Some of the real world scenarios where MongoDB has found its place:

  • MetLife - one of world’s largest insurance companies uses MongoDB to build a single collection of data from 100 million customers, 100 products and more than 70 source systems
  • Shutterfly - an internet based photo sharing and personal publishing company has stored more than 20TB of data and developed dozens of projects on MongoDB
  • Genentech - a biotechnology corporation changed from relational database to MongoDB and has increased its drug research rate from 4 months to 3 weeks
Introduction to MongoDB
  • MongoDB is an open source document oriented database written in C++
  • Data in MongoDB is stored in documents within a collection as sets of name-value pairs
  • The document is a Java Script Object Notation (JSON*) that is schema-less
  • MongoDB uses Binary JSON (BSON**) for storage and retrieval of data

Features of MongoDB

  1. It supports schema at the document level, that can vary from one document to another. It does not have a fixed structure defined at the collection level

  2. It has rich query language that supports CRUD operations, aggregation, text search and so on

  3. As documents can be embedded within each other, it does not need complex joins.

  4. It also provides support for indexes for faster querying

  5. As data is stored across multiple machines, it is horizontally scalable. Sharding distributes the data across multiple machines

*JSON: is represented as set of ordered name/value pairs used to represent data that is easy to read and write.
data:image/png;base64,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
**BSON: Binary representation of JSON data on disk.

Zovia eCommerce product catalog business component

Zoiva is an eCommerce system that sells products online based on customer needs. It maintains a product catalog consisting of more than 10 million products stored in relational database.

Challenges faced by Zoiva

With RDBMS Zoiva faces the following challenges:

  • Data model of products in the catalog keeps changing. It is difficult to update the RDBMS schema for each change
  • Customers would search products based on various criteria like price, brand and so on. This requires query flexibility without affecting the performance

Solution

Zoiva decided to migrate their product catalog to MongoDB to address these challenges. To achieve the same, the development team needs to implement the following requirements:

data:image/png;base64,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

Before developing the product catalog, MongoDB needs to be installed.

Installation and configuration of MongoDB

  1. Download MongoDb
  2. Create the database path as data\db that MongoDB uses to store data.  Open Cmd --> md data  -->md data\db
  3. Set enviromnent variable path : C:\Program Files\MongoDB\Server\4.2\bin\
  4. Run mongod to start the server. MongoDB runs on 27017 port by default
  5. Run mongo to start the client. By default, MongoDB connects to the test database
  6. To test the client connectivity, execute the db command as shown above. It should display the output as test.
configuration :

As a part of the exploratory exercises, try out the following:

  1. Find out the version of MongoDB that is running [Hint: Version] : db.version()

  2. Change the default data path where MongoDB stores its data. [Hint: Data path]

  3. In certain cases, if MongoDB server shuts down unexpectedly and is not able to start again. What is the command to recover from such scenarios? [Hint: Repair]

data:image/png;base64,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

Requirement 1: Designing the data model

The basic building blocks of MongoDB are:

  • Database
A MongoDB database contains all the data generated by the system as collections.
  • Collection (Similar to table in RDBMS)
Collection is a single entity that contains all the data related to a particular aspect.
  • Document (Similar to row in RDBMS)
Data is stored as documents which are represented as a set of fields with associated values of corresponding datatypes.

Datatypes in MongoDB

The datatypes supported in MongoDB are string, number, array, boolean, date, float and so on.

Requirement 1 implementation:

The development team created a collection to represent the product catalog for Zoiva. Here is a sample:

data:image/png;base64,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

Requirement 2: Performing CRUD operations

CRUD operations
  • Create operation
  • Read operation
  • Update operation
  • Delete operation
  • Bulk write operation

2.1.1 Creating database

First, you need to create a database for Zoiva

use Zoiva

2.1.2 Insert operations

Use insert operation to add new documents to a collection. If a collection does not exist, the insert operation will create one.

Syntax:

db.collection.insert( 
{ 
	field: value, 
	field: value 
})
To check all Collection
 db.getCollectionInfos()

Requirement 2.1 implementation

In this section, you will see how to insert document/s into product_catalog collection.

To insert a single document into the product_catalog collection:

db.product_catalog.insert(   { 
	prodid: 7000001,  
	prodname: "iphone 7",
	manufacturer: "apple",     
	categories: {
	main:"electronics",
	sub:"smartphones"
	},       
	date_of_launch: new Date("2016-09-07"),      
	price: 60000,       
	colors: ["silver","black","gold","rosegold"]  
})

Alternatively, db.collection.insertOne() command can be used to insert one document at a time.

To insert multiple documents into the product_catalog collection:

db.product_catalog.insert ([
    {    
    prodid:7000010,  
    prodname:"nosql distilled",   
    publisher:"Addison-Wesley",   
    ISBN:1234567,  
    price:400
    },  
    {
    prodid:7000011,  
    prodname:"big data: principles and best practices",        
    publisher:"Dreamtech",  
    price:700
    }
] )

Alternatively, db.collection.insertMany() can be used for multiple documents insertion into the collection.

Now that the documents have been inserted, next you will see how to query by applying various conditions.

data:image/png;base64,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

db.product_catalog.insertMany ( [
{
    "prodid": 7000002, 
    "prodname": "Java", 
    "publisher": "Oracle",
    "version": "1.7.0.55", 
    "price": 400
},
{
    "prodid": 7000003, 
    "prodname": "Sql edveloper", 
    "publisher": "Oracle",
    "description": "to connect to database RDMS"
 },
{
    "prodid": 7000004,
    "prodname": "db visualizer",
    "publisher": "IBM",
    "description": "to connect to database ICOMS",
    "jar": {
		"isJarRequired": true,
		"jar": "As400", 
		"version": 10.1
	},
     "version": 9.11
 } 
])

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAb0AAAJhCAYAAADVOm6NAAAgAElEQVR4nO3d25WDIBCAYfuxFUuxEQuxj3TGPkQ3iMCAFwbxf/jOya4xjmic4IXpuq4zAAC8hHoAAACUcsOHDpP5zKPpu850XW/G+WOmQX1FD8aPfpzN5/P5mgalOL77EdvlZv1oZtoYbbvhQ0l6O8P0MfPYq63TFcvvx5mkl92+g5k+22nfHxGzGXv9uH2xPuq7CuTrrj/Ik/R2SHptC7ZvP5p5nq3eU2/GeTbzXF/S095HgUK+L4bpYz6fyQwHP+g7v2WX9JZf6p9P5q/cdf7vr1Df/P04m3nsN6fhtl9ee9n+9ZTjt97vS4rDtJl/Xf7m1KAtN3kEPt8f/2/9Upcfmt8WTnpS+7rTv1J/CMVPr8r7h2/57rI36+9s29j+JbbvcrpwnJaY+tFM42BGJ+mF219Yv340s7u+vv9J+tHMJ77/wIP8/jh62mWYnIORp6e3OdAMU0aC3c/fj/PmwPR/4Fn/t/nSf+ffnV6y5k+JP5r0hklst1O/ooXP78d5E98w7Q/cseWnzP/fboGkk96++/enii3fbh/3fVIP1d3+7t/x/Uto3/Ua2TAtiXMyY7/dp+LtL61foP0zf1TRi8eLOP9YehTppyMHM7kHZPH0pmeeIHl+9yC7me79BWvPfyB+J+mlJLQzSS97Xk9PNOszAqd3vQdGsX337Xf0ABtLerHt801aoR9Znu3vrFN0/5La9z+WwUzzZKZpNL10yv/Ij65TlxOO/xABHsj5Rz+a2XOKJ8h30NNIeqGDqPcAbn3mkfgPHGSOJ72Ez1+3mff0bMLyE+YPtrPUvl2Znp50+jl4itS37p94zzFr+w7T/7y/9zgxR9s/Zf2cH3nZ16MfeN0dOO73x6HTm56ksf1lfEPS8/0SDx2UpJ7Ikfg9Se++np70+Z7pWT29tPmD7Sz29DzXSw+eRjuT9Nz3/z5H3hevSnru+78xS+2ftn7r8tfrj9fuY0BTvi+O38jifGHWGy4iX9rdNbSuM+vt0qGbIGLzxw9K+y+075pJOH5neZ6ecPz0mfWeg3eEyqfn7PZZ2tHX0/EuP23+cDtL7TuYKWm/Cm3/tOWnJ7395/j3R2m5ads3NO8vSUrtn7h+y3XGeT52MwrX9PAi3flb9O3TM8tFe9+NLPFf+vGkF5tf/sLad755DujR+J3pn8kMnlNI7l18+1/NznocudEg9PmbOztnMw6+U1yR5Ufn9995uY0/3r7eOxwzf/SE50/ricdP3cb3sbSE4G9fOemltb+c1N0e7JHvMHdv4hXUAxBwveHRvLfP8xD09c5/T3hODy+hHoCApPdovsctjjxHhqgzp89/+DGCV1APQNBy0nNOC4qnAJ9pf3qThHd92150apKxN9E+9QAAAChFPQAAAEpRDwAAgFLUAzBd51z34ZoCAOAe6gGYruPhWABAEeoBmK4j6QEAilAPwHQdSQ8AUIR6AKbrSHoAgCLUAzBdR9IDABShHoDpOpIeAKAI9QBM15H0AABFrC+kemZnp8eR9AAABawvSHoAgOapB2C6jqQHAChCPQDTdSQ9AEAR6gGYrmPsTQBAEeoBAABQinoAAACUoh4AAAClqAdQ0PpYxcdMg3YsAAAF6gEUM0wfM4+9ehwAADXqARTSm3GezdhrxwEAUKQeQCEkPQCAfgCFkPQAAPoBFDKY6eC4oACAZqgHcLPejPPxgbABAE1RD6CQwUwfTm8CwMutL3RLC92Pa3oAgP8XJD0AQPPUAyiEpAcA0A+gGEZkAYDXUw+gnH40M2NvAsCbqQcAAEAp6gEAAFCKegAAAJSiHsDzLdcKp6Ez3TCZj/ZD8MNkPvNo+s3/l5Fpdv9PmL+29QOA49QDeL7aksKTkp51c9GGE+cwhafpT/8VJ/58uEMYqJx6AM/Xj2ZeE4H9Wiseb9I7MX/h9Rumj/lMw/bv/3iW5F3Z9P+7gWvY/gBi1ANo3PcgOQ12b2B7UOzH2cxjb/pxDvQW1kGzV/tRbzY9Eac3Yn+ufbBOnT9nPU8l264z+zFSPWOmbhKL9nR/O9DbA6qlHkDjfglr7Q304+xPSuv/NgfV/UHUnd/tGYV6ev04e5Ne6vxJ63ky6e1iHKZtkneftdSevluH748bngMFqqUeQOPWnp79v23vwU1im+n9aOZdz86e39MTyUp66fPfLxLLf7KZzdhbbao93VmH7alQABVSD6BxiUkvcNoxdlPKNHT+pJiT9DLmv9s++S+x7E4JO0lJc7obP9fzgNqpB9A4zwHSSTTRpCf19DzTvckjtJyM+e8VOC1o3zm6+Z+9/orT7TYj4QFPsL5ovbSQln3Sc6+hRZOe55qe727C/+lrzyT59Gb6/CnreTRZxhKte8owfndn+elpj3Hw/QAqsb4g6d3DvfNyfwdlPOnZbRu4s9J+1m0eTb85PelZvhtDdP7M9TyS9Hy9qVgbBhK3znRn24h32NIbBJSpB9C48E0PeJfvKVB+FALK1ANoHEnv9f570iQ8oALqATSOpAcAFVEPAACAUtQDAACgFPUAAAAoRT2A53tEaaGG26e29n9afMC7qAfwfLUd1Eh6m8/fVZAovX1q2z+Ad1MP4Plaq6f3tPbJ+nzPoNZPX38AOdQDaJx2PT15+fv5rc8fJvOZRqs80vo5kd7UoYR7VT0+iT/pBdffl6Q8/wvOD6A26gE0True3rr8cFWHfpz3Y4Ou8y9jcU6DPYzW9tlD71iV0WHVIu2kkPSi65/Q/vH5AVRGPYDGadfT8yxfOv1pT7de/5KlnQhClcVr7e0knN502me7fRIGG6jt9DIAm3oAjdOup5eQ9OwBp91TlFLS882rcbNIslCSDp0eXudZ2tjX3uL8ACqiHkDjtOvpSUlvf/rudE+vam68wvovhsm6+3KzrdLmB1CN9QWlhe6hXU9PSnpu8dZlOyYnvaPX8PzreX2y6M04hU5VJqy/3WbTYIbJTfCJ84v4/gCFrC9Ieveoo55e9PTmmijX05LDaOaMpJeyjsntdEcPaXP60bN/xtY/Jb6k+WXU2wOKUA+gcVRZQBrq7QFFqAfQOJIeBNTbA0pSD6BxJD0AqIh6AAAAlKIeAAAApagHAABAKeoBPN+tpWPka4L2QNXS8375jwQUuCb58np7advvuesHVEY9gOdTTnqrlIfcSXq+z5erWJQgP6+p1H5AW9QDeL5b66VdlfTuX36d7Sd9/pLw3BFyFIYRO5f0qNcHJFIPoHFSPbu0sTGnwe6N+A9qoYOmfPpsP6LKL5605cfq6cn1AtPb8fJkNEyent12m6TEL9bT24za4l//WNI7X68QwEI9gMZJ9fTSkt4mEXkP1HJPIZoUpdOibvyR+nnesUWD9QIz2/HiA35o3Yfpl5ik+MV6eomnHGOxnK9XCGChHkDjpNJCqT290Pw/p5Je8DpWyoDV8Xp60XqBytsnlEB2SS8nfmdsU/uzYvzb52n1CoHqqQfQuPqT3v807ylQIb6Eenr3XGu8RnJPLxZ/tJ7eyWuyj6tXCFRPPYDGSfX06kh6bry/9x3o6R1arhJv7bttuaDc0k9ivcKsdqqnVww0Yn1BaaF7yPX0Nn+vv+wjSS90Su6apOe+Ty5NJF1juibp3VV66LvfhusVSvHL9fRSqyekXtM7s558P4H/FyS9eyTUmnPrvfV2PTZpfs/0z76nljV9k1gS6vEJMdad9Ox9N3z3aTT+hHp6m9PHH6EWYco2PtCe1OsDOtNVEEDjqLKAOlCvD+hMV0EAjSPpQRn1+gCbegCNI+kBQEXUAwAAoBT1AAAAKEU9AAAASlEP4PkeUdrlxlv+1UsDvRztA+RQD+D5HnHQaT3prc+yZd6hGBrmK7OdzlRBcJ/hc6swSNOfsf8B1VAP4PneXs9MtR5e9zvQj/7qE7lyR0DZjuCyr88nWUsXHZ3++v0PyKMeQNt8ByHP/87Vo4vVwztST89OHFI9wFR39TR7M85LvIGSS3lyx7oMVUFI/4zTSQ9ADvUAGrcfcNgtVXO2Ht2xMTVT41sT4tmqCXcOI7a4IOllr5u7TOt0aeqzmSQ9oCj1AJoXLxp7vh7dqQGNvbXZckofVeR00jtQ0WBti/9kN5uxzxuQYHfNThi3s8q2B55DPYAXGMy0HozdJHNRPTr5FGbgc7wJzD5ovyfp7X9cpC7TPeV7bhSeXeX1zOkAotQDeIVhsu6u2ySeq+vRhW+koKcX45YISmTfObn534mbSaT1uOTaJfBa6wtKC91qSXbDtD8YXl2PLvT+1Gt6vrsRzyc97Wt68f1T7uWF53d7Xv7tmfr9kO7+zL87NG/5QPPWFyS9e8UO+mfq0aXVw4vXa4vVk6s/6W3ufPXegSrsn77e2k5s/3ba2LutQvPvt490Z+7Rm1qopwd0pqsgAAAFUE8P6ExXQQAA7kQ9PcCmHgAAAKWoBwAAQCnqAQAAUIp6AAAAlKIewPMVKe3y4NJAAFAP9QCej6SXtRzfOkj16M7UqwMAi3oAz/f0emZF4l8ecp/2D7ZL9ejO1qsDAIt6AI2T69FJ9fJSBpP+DXzsH7XjfE/pXE/zf5iv3WguUj268/XqAMCiHkDjfsNIrcNcueM8SvXyOvt9vqQnnJKU6vVlrceRpGevj5v0pHp0F9SrAwCLegCN85WZ8dTDk3o/XTjpDVNsPEa5Xt/dNvH5kl6sHt0F9eoAwKIeQOMSk97JyufBBJBQr+9WoSRn/x2rR3dDvToAr6YeQOM8B2hfZfSTSS+rp1eQvwKCdXpSqkd3R706AG+2vqC00D32Sc+9pnYu6cmj5x+7hudfj9OPC3jKEkn16NLq1QFAkvUFSe8e8Vp5XXegXl7oMzJqshW9kcXmrcUn1aNLqVcHAEnUA2gc158AoCLqATSOpAcAFVEPoHEkPQCoiHoAAACUoh4AAAClqAcAAEAp6gHc739UDx6nAICXUw+gGB5qBoDXUw+gHO+D0QCAF1EPoBySHgC8nXoA5fSjmUl6APBm6gGUw+j8APB26gEUtgyMTY8PAN5IPYByClcMBwBUZ33xgtJC0RtZHhA/AOCs9cXbk95a5ZtrfgDQMPUAyhGSnlSBHADweOoBFBOsUN6PZq69lwoAuIJ6APf7H3uTU5cA8HLqAQAAUIp6AAAAlKIeAAAApagHUND6WMXHTIN2LAAABeoBFDNMHzOPvXocAAA16gEU0ptx5u5NAHg59QAKIekBAPQDKISkBwDQD6CQwUyMuAIAb6cewM16M84MMQYA6ExXQQCFDGZiGDIAeLv1ReulhbimBwD4f0HSAwA0Tz2AQkh6AAD9AIphRBYAeD31AMr5LxbL2JsA8FLqAQAAUIp6AAAAlKIeAAAApagH8HzLtcJp6Ew3TOaj/RD8MJnPPJp+8/9lZJrd/xPmr239AOA49QCer7ak8KSkZ91ctOHEOUzhadrTN9M+3CEMVE49gOfrRzOvicB+rRWPN+mdmL/w+g3Tx3ymYfv3fzxL8q5o+tZ3kAbuDgaqpR5A474HyWlYR6z57HpK/TibeexNP86B3sI6aPZqP+qN29uwk5b9uaGDdWz+nPU8lWy7zuzHSPWMmbpJvNrT/W1Jbw+olnoAjfslrPXXfz/O/qS0/m9zUP3Obx9E3fndnlGop9ePszfppc6ftJ4nk94uxmHaJnn3WUvt6e469KOZqx2KD0BXQQCNW3t69v+2vQc3iW2mew+i9vyenkhW0kuf/36RWP6TzWzG3mpT7elLnHZPmV4eUDX1ABqXmPRC14giN6VMQ+dPijlJL2P+u+2T/xLL7pSwk5Q0p3vWY9dzBlAT9QAa5zlAOokmmvSknp5nujd5hJaTMf+9AjeA2HeObv5nr7/idN+6qPWUASRYX7ReWkhL4FSYlXyiSc9zTc93N+H/9LVnknx6M33+lPU8erCPJdrt+kp3d5af7m0H72lkvh9ABdYXJL17uHde7g+I8aRnt23gzkr7Wbd5NP2mp+FZvhtDdP7M9TyS9Hy9qVgbBhK3zvR9+4au6X2v+/FgP6BMPYDGxa//4D2+d+nyoxBQph5A40h6r/ffkybhARVQD6BxJD0AqIh6AAAAlKIeAAAApagHAABAKeoBPN8jSgs13D43f37KgN01b7/i8Ve2/QCHegDPV9uXlqTnfH76s3Qx8vOUdW+/YvHXtn8AW+oBPF9r9fSe1j7Rz9+PaHMUSe+h+wewpR5A47Tr6cnL389vff4wmc80WuWR1s/ZfoZUeTy1na4/2KcVdU2pJ3gmaWRVZg+WmVp4/pfS/uH4Y/vXgf3HWb68fwNFqQfQOO16euvyw1Ud+nHejw26zr+MxTkN9jBa22cPvWNVZieHu5Le74CcXBUhsx5h0vIj7ZOy/XK2f6j9k8Ze3X2+vP9Ky4/v30Bx6gE0Truenmf50ukze7r1+nfQtA+UocrilY0+8l8iyE0IZ+sRSqT2kZfvS0K/7Zne/smlpTafKe2/8vKj+7f2foE3Ug+gcdr19BKSnj3gtHuKSkp6vnkDp8DqsJym2/Q6TtQjlEjtk7T8wUzre9z3Z7S/N35p/5L234TlV3stEW+lHkDjtOvpSUnPc6PH2Z5e7XY3TpyoRygS2idx+cNk3d0o9VQDLuvpST3VS9oNuM36gtJC99CupyclPfdGD6cnJCa9qyqF33dNz+X7UXC8HqEspf6euPwl2Q1T4CaShLhSr+n59q/Y/ist/5qkx/EFl1lfkPTuUUc9vejpTft612c24zCaOSPppaxjcjtdnfRip24z2i9aj/DsPpBUzzDWPrHPT4k/tn+lbNv4e67q6VGPEBdRD6BxVFl4nNqec1RVz/5LPUJcRD2AxtVz0EAikp6lgv2XeoS4lnoAjavgoIE8JD0L+y+aox4AAAClqAcAAEAp6gEAAFCKegDPd2tpFPmaSlq9tKOPBBS4pqNeekjX6Xp3la8fUBn1AJ5POemtUh5yJ+ml1NvTuUvw8PNsJD0gh3oAz3drPbCrkt79y6+z/aTPXxKe+zC1wt2b55Ie9eiAROoBNE6qR5Y2NuY02L0R/0EtdNCUT5/tR9T4xZO2/Pvrqd00YssweXp2222SEn+wHuFmOZ/o+seS3vl6hQAW6gE0TqpHlpb0NonIe6CWewrRpCidFnXjz6gPd009tXuSXmjdh+mXmKT4o/UI/7eXvL6xWM7XKwSwUA+gcVJpodSeXmj+n1NJL3gdK2XA6ufWUwslkF3Sy4nfebjd/qwY//Z5SL1C4DnUA2hc/Unvf5r3FKgQ38PrqSX39GLxRwe1PnlN9nH1CoHqqQfQOKkeWR1Jz43XHaU/q6d3aLlKvEOObcst5ZZ+EusVZrVTPb1ioBHrC0oL3SOzHtn6yz6jntnqmqTnvk8uTVSmntpd9fa++224npwUv1CPsJNOH8vtdM01PL6fwGJ9QdK7R0I9ss0prMkMvVXPTpxfqpd2YLqnnlq0Hl+Remp3FpmN1ysU44/VI7Q/w3v3Zkq9uyvqFVKPDlioB9A4RqlHHahHB3SmqyCAxpH0oIx6dIBNPYDGkfQAoCLqAQAAUIp6AAAAlKIeAAAApagH8Hy5pV28D0Rru/ORgJs/X700EZpS9PvJNX/R9d+/Clbq6Uh6CeNLtp30UsfXfKuz7VO0fQ98P4/HV3vSE57j9Q2Tt3mGdD/4w/fRGU95r1AVEpJehXLrmVWZ9M5RPeir1uOrYP0fgKQX8oyktxtMYTOClP0ojPPjth/NPM/OYBuzmeft2MPRtrv++63dqO+wrbe27/HE66XF6t0tIvXapHpw8Xp78XqA7kgjwRFZoiOJxCqXS/UIU91YmkhY/0sqs0fr8Z1pv7T2Fev5BeJLax/99s36froVRBLWL1xv8UC9ykD9x9jx4Xg9xn1S2lQd8VX8cJPUPJpx+v09jYMZ/5OeO4xfEUUX9kq7sROFsSu99ejEYbDCiSC1np1/OVI9wF/M0i/d2OcHv1T/yz9bteHea5bh9ZfWL0F0+55tP7l9xXp+Caec7uvpnW9f6fsp1ksU1i8+v1wvU1q+9H04V4/RbV/ndKW3zJU1zzqk4jAtP7wnM/bb3u2akAsmvmILeinPKPlH6tFFfr1KB5TUenCxpCRVeTic9LxfmpzSS3UIrr+4fic++5L2O18vMWXb35b0Trev9P308EzPWr+DVVRCy48fH87WYxR6kVLS+491MNM8mWkaTR/a506MK5vp1g+Hb6fIrEfXdZn17hzHqivEPv/CpOc9wNjLfHjSE9dPIrz3dPudrZeYti63Jb2z7St9P0NtkJP0sustOt+vhOUHjw+n6zFue3q7XmJK0lve/2uj2PbZVym5wW0fjMBOse155dZL89e7E3t6VyY9zzrR07urJyJsX42eXk58GfuHSvuK30+pXqK0fmn1FqUi09Ly3eX9vmdn6zE6y7fvpAy1v335xEp67vYM/ii542a0LbuhYxeBKS10yU6zduMz6tG53OQhnf68Oun54k25jpJ6Tc93zeN80rv3ml54/aX1S/zs4PY9234X1UsUvvfZ1zGLta/0/ZTrJcbjk+aXvl9py499z87VYxTad5f0lviW5cVqRMaugRbq6ZH0bmOfYlgu6qbXo5Pq3Vk7SuDuvpTK3+G7z1JruTnvS67nZ+87vvV7RtILr7+0fmli2/dc+52vlyjHJ7WPcvtK38+EeonR+KLzJ3y/cudPuPv7+I0s3ba35zl9au9LYtJLOHV7g1s/HI9X+3NEAJBFPQBUjaQHoCnqAaBqJD0ATVEPAACAUtQDAACgFPUAAAAoRT2A+/3f8svjFADwcuoBFHPuIU0AQAPUAyinwuGrAABFqQdQDkkPAN5OPYByet/wQQCAF1EPoJz7R+8GANRNPYDCitRrAgDUST2AcrIqBgMAGrS+eEFpoeiNLA+IHwBw1vri7UlveY6Pa34A0DL1AMoRkl5KBWgAwKOpB1BMsIL4f/VeEh4ANE49gPv9j73JqUsAeDn1AAAAKEU9AAAASlEPAACAUtQDKGh9rOJjpkE7FgCAAvUAihmmj5nHXj0OAIAa9QAK6c04c/cmALycegCFkPQAAPoBFELSAwDoB1DIYCZGXAGAt1MP4Ga9GWeGGAMAdKarIIBCBjMxDBkAvN36ovXSQlzTAwD8vyDpAQCapx5AISQ9AIB+AMUwIgsAvJ56AOX8F4tl7E0AeCn1AAAAKEU9AAAASlEPAACAUtQDeL7lWuE0dKYbJvPRfgh+mMxnHk2/+f8yMs3u/wnz17Z+AHCcegDPV1tSeFLSs24u2nDiHKbwtBqmb9YlpY0BaFEP4Pn60cxrIrBfa8XjTXon5i+8fsP0MZ9p2P79H8+SvCua3ln/n6aTbQ/gbuoBNG45GA7riDWfXU+pH2czj73px/m/N7F9nnAdNHu1H/Vm0xNxehv25+4P1vL8Oet5/oDvjpHqGTN1k3i1p1ttPI+mP/uDA8Dd1ANo3C9hrc8G/h8gO+tvO9FsDqrf+e0k6M7v9oxCPb1+nL1JL3X+pPU8ecDfxThM2yTvPmupPd3dXiQ9oHbqATRu7enZ/9v2Htwktpnej2be9ezs+T09kayklz7//SKx/Ceb2Yy91aba0ztnpB+SHlA79QAal5j0AqcdYzelTEPnT4o5SS9j/rvtk/8Sy+6UsJOUtKfbMZP0gNqpB9A4T9JzEk006Uk9Pc90b/IILSdj/nt9r3nuhoez7xzd/M9ef73pu2uhFoa6A6q0vmi9tJCWfdJzr6FFk57nmp7vbsLN6bXAjSj+5aTPn7KeR5NlLNFu11e6u7P89I1gT4/vB1CJ9QVJ7x7unZf7A2Y86dltG7iz0n7WbXcHoWf5bgzR+TPX80jS8/WmYm0YSNx60y2Rtvv2CnmwH1CmHkDjfNf08Ebfu3T5UQgoUw+gcSS91/vvSZPwgAqoB9A4kh4AVEQ9AAAASlEPAACAUtQDAACgFPUAnu8RpYUabp/cz/c80nH/NderBuTOlzLguGZ81X1/0Dr1AJ6vti8tSY+k55EyCAJJDy+gHsDztVZP72ntk/v5KklPnzwIQqP7B7ClHkDjtOvpycvfz299/jCZzzRa5ZHWz9l+RlJl8YR2uitZy+1jt3HGQdd3kHb+J59e3I+a80vCnqTs+VET3H6WUNKLx+cf0cf9kRDb/vL+DRSlHkDjtOvprcsPV3Xox3k/Nug6/zIW5zTYw2jtS+vsxqrM7lHcl/TS2sc6kLs19BLijm2fzf9DSUc47RhLetHtl7ycxJ7gMO3eI23/+P4NFKceQOO06+ml9RQ27OnW699B0T7QhyqL1zL6yIH28c0Tsd1+4dOl8Z5WqL1Obr+E5adO/7ZLbF/0b//o/q2+f+CF1ANonHY9vYSDpj3gtHuKSkp6vnlzTxHe6Uj7ZB+UrWQQSfix7Rw+xXhy+yUuP2X6MIVLP8W2f7XXEvFW6gE0TruennTQ3J+eO93Tq8mR9jmwTv8JwXP6b7Nc8eC/nG79f9/J7ZexfPHHl3ea3FYkPVRmfUFpoXto19OTDppu8dZlOyYnvaPX8Pzref01vfz2ObQ+S1IYpnACSD34u+/bxLP2rFK3X8byg9OF09VSe12T9Di+4DLrC5LePeqopxc9PbYmgvW01DCaOSPppaxjcjvdcfdmbr3BQwfoUPxSPUPP9Nj2/Uxm6K3tI22/I8vPmi634VU9PeoR4iLqATTuPc+BAXeiHiEuoh5A40h6wCnUI8S11ANoHEkPACqiHgAAAKWoBwAAQCnqAQAAUIp6AM93a2kU+ZrgvfXSClyTrK300NPWD0AO9QCeTznpre6pl9Z+0ttVYMh6ju77DOVuwGl7GSQ9oCbqATzfrfXArkp69y+/zvZL//xh8pW8cdffGSasH808z87D4LOZZzfpUS8OqIR6AI2T6tmlja2YUu/tWL203zLi9dziy7+/ntr9lb3Tkp7TzsvoKOP0S2rTOJhxJrEBlVIPoEMdWIsAABw6SURBVHFSPb20pJdS7+3o2IpJp0Xd+CP10+6pp1ZL0nP+XocEG6YlsU+7eoMAqqIeQOOkUfxTe3qh+X9OJb3D9dzaqacWS3rBcSf/22Iw0zyZaRpNz4AEQM3UA2hc/Unvf9qRem4N1VPLOr1pD8i9rNtvfpIeUDH1ABon1dOrI+m58abXc2unnlpq0ttsv0CdOW/BVQA1WF9QWugecr22eL209Hpv1yQ9931yaaIy9dRquaa37emF1s3/WTF8f4BC1hckvXsk1GuL1kuT5r+hXtomsSTU4ytST+2+pHfmOb3rkh714oBC1ANoHNd3kIZ6cUAR6gE0jqQHAfXigJLUA2gcSQ8AKqIeAAAApagHAABAKeoBAABQinoAz5dbOmZ3y38N7n4O7sbPb70eH8oq+v3kmv9p+d/PCoJ+OpJewnNpbSe9I8/lvcnZ9inavge+n8fjqz/pxZ9jtdrMmr5tC/dZV/su5YR6lJ5nZTefT9JTkFsvrcqkd47qQb+CenwkvXv3D5KevtA67pNUt1Qb+a3fbrAKe+zeaD3K7/zRts3//us35hvsfi05X6pYPbp4vbtF5JeWVM8uXm8vXg9wM29sRJasen72L0GpHmGqe3qaKesfX79Eh39Jp9ZzjLdvfP8Mx5fWPvrtm/X9dCuIJKxfaP5D9Sp36ycfH8Ttl9hG++Tz3W+CSdtbBs1K9GI9SuHzj7n0wxDYWfzlaPzTvfXoYgcJoUufWs/OvxypHuAvZumXbuzzd0l4Nwzb2aoN916zDK+/tH4Jotv3bPvJ7SvtnymnlO7r6Z1vX+n72Y/zfuzbjP0/Pr9cL1NavvR9ELffmW3glBHzrXt0mL6EepRrwr4w8V32QfDyVCE4Uo8usmNJB5TUenaxpCRVeTic9LxfmpzSS3UIrr+4fic++5L2O18vMWXb35b0Trev9P308EzPWr+DVVRCy48fH+Ttd2obBApa2/NEk15qPUr7TML5ii2nZobEt4Nl1qPrusx6d45j1RVin39h0vMeYOxlPjzpiesnEd57uv3O1ktMW5fbkt7Z9pW+n6E2yEl60fkTvl8Jyw8eHxKPL4e3gZD0xJ5edj3K5TT8ue//4RmRwvOl2va8cquI++vdiT29K5OeZ53o6d3VExG2r0ZPLye+jP1DpX3F76dn/bJ6etL8aUWmpeW7y/t9z3KPL7nbIOGa3i5Wa54j9SjP36y2DYTSQldzdtq1m55Rj87lJg/p9OfVSc8Xb8p1lNRrer5rHueT3r3X9MLrL61f4mcHt+/Z9ruoXqLwvc++jlmsfaXvp3tQ9/c0wvFJ80vfr7Tlx75nR6/huUKJ3VcS63f35v6RBHv7HCnNdWxf+uWnzvdPkt7F7FMMy0Xb9Hp0Ur07a0cI3N0XT3oH6u2l3IGZXM/P3nd86/eMpBdef2n90sS277n2O18vUY5Pah/l9pW+n5s7U2czDna9y4T4ovMnfL9y50+4+zun/VOe0zu6fybd6CKc2s1bj9l013/50ZbnPEcEACHrGYlOOxDUjqQH4MH29SorCAoVI+kBaIp6AAAAlKIeAAAApagHAABAKeoBPF9GaYvvbbMXP9ZRrN7b79ZjrvEBeCj1AJ7vJUmP8jkAGqAewPPdXc+tiuX3VrkPAHgs9QAa5xuRZN/Ti9XLkurhZcVxeEQSkh6AJqgH8C6BAW7Feln28DuHenMkPQDoKgjgXVJqWfnqZSXUw7vXYCbGVQXwfOoBvIsv6QmDqh6rFH6V9fQsCQ9AE9QDeJdd0pPrZekmvZVG7xIALre+oLRQEbukJ9fLuibpcU0PALrfC5JeEb7Tm0K9LpIeAFxGPYB3OVQAtQYkPQBNUA/gRZbelvr1uWMYkQVAA9QDaJt7Z+ZDE567Loy9CeCh1AMAAKAU9QAAAChFPQAAAEpRDwCSpNJBZx9JaF3B9nHv0C1W7xBAAvUAILk56W0rPHwuPih7qkyoJOa2kx531gLJ1AOApGi9vquHG3OHWXv2YxtJvEnv3u1H0gOSqQeAk+w6e/5ksu9thR858Ce94/X+9mOL7qtGOJ/v6Y3teqP/7/l+/mZ9fGOXRtonpV7h8fhSHeuJbtYt8GhMyvaJtV/K+gMPoh4ALhIarixvGLN90jtX789Net/h6uykMkzbg7T09/agnHbQFtsnUq/wXHypzp1+jfX0UrZPrP3E9QWeRT0AXCR+UE8dEzXh9GZWvT+pl+lZ3mZ8Us/0O5JeMP6z8ZUhJj1h+4TbT1p/4HHUA8BFYj06+RToKnSQO1rvb9vT2/USfJ9t30wTGqD76qQXiv90fGWISU/YPsH2k9a/gv0eyKQeAC6SdhpTupHETXpn6/0589t3MnqX5/AklW3P5eakdzq+Mm5LetRRRHvWF5QWerrUa3fb9/VmnKRTlWfq/e2TpntNMH6NyJl/LcMUmn/tmVyW9M7Hl+bcNb1Yos1aP0/7pV3D4/uPx1hfkPSeyfMc3OYUZsJzcptTWJ7td6ren6enuOvteWIMnQKdR9MHnoP7j7+345PaJ+XHwsn4crbjqXqHB9cv2n4J67/43uFJrxDVUw8AyPPYmoRty7thClCjHgCQh6RXl/+eIgkPj6AeAJCHpAfgOPUAAAAoRT0AAABKUQ8AAIBS1AOAJKM0zfe28YtvKLi7NM7T6809PX7gXdQDgISkF33oPHc5YpWE3OkkPeBJ1AOApGg9PYXlJ3z+tzzOYMb56LKX4bamQNkc92F2t6pAZLr69gGQQz0AnOIbcWTf0zteDy8zjlseJfiND7nGKrWBWy/wf5iu3eMOoQG2pSoLJDbgodQDwJUCAyAfr4eX6sakZ6+T5xm9tGG2lvVx5x+m7Y8Aa0iu3+nKyHTt7Q0gl3oAuFJKrbOsenj6tknNX+Q2dh1zU4HAl/Tm0fT/yWw2Y29VHpCmV9A+ALKoB4Ar+ZLeqXp42vYJxldGJ1gvMJTk7L939eGcpBebrt4+ADKpB4Ar7ZLe2Xp4NayPp0pC8DTq9kaT7bVMz3W/XcWHznNjSmS6dvsAyLW+oLRQE3ZJ72w9vFQ3XdPzjbMpJJ3o+ng+T6rvl1f/L4TvB1CJ9QVJrwm+05un6uGluifp+SuC273XhHqBblvspodr0aVNT18XnuED1KkHgCtRgaBa1JsDqqAeAC7jeXAa+qg3B9REPQCc4d7oQcIDgBj1AAAAKEU9AAAASlEPAACAUtQDgOQRpWvuHnuz9vUH8BDqAUDyiIP+05Pe+iye/w5Lqd7e2c8HUIx6AJC8vV7b3eu/JtJx8iYlsZ7eyc8HUJR6ADjDlwQ8/4v1VOR6evF6dcHBnoPz78cGnYZ1RJ+jo5Yc7Wn2ZpytskW7pHS2np70+QAKUw8Ap+wHlHZLBXnHkrT+lurppQ5T5n+fFN+aEPOX51vOqdOrvqR0ZT09kh5QA/UAcJIviWwHmPb1VH4HX6meXurwWd5k5a3vZ3++p0yP1lBqoaR3VT09kh5QA/UAcNpgpvVg6iaZUGmezJ6VfAoz8DmRAZ6/SeMBSe+qenokPaAG6gHgAsNk3d24STxyFfS804nhGzma7OldWU+PpAfUYH1BaaFHW5LdMO0PxlL9t9xraKH3p17T890NeT7p3XRNbxdvqD0T9n+SHlCD9QVJ79liB31PzTn3RpZg0pPq1Xmm706B2ndm+ufXTHr+6ur7O0zjp3fD+7/8+QAKUg8AAIBS1AMAAKAU9QAAAChFPQAAAEpRDwAAgFLUAwAAoBT1AJ7vf9QObkMHgMqpB9AM6SFwAIA69QDaoTV8FgAglXoA7SDpAUDt1ANoRz+amaQHADVTD6AdR0ffBwCUoh5AY5aBh+nxAUCN1ANoh7d2HACgIusLSgudFr2RhfYBgAqsL0h6pwl3b37rqnHNDwAUqQfQDiHp9eP87h8FAKBPPYBmBCuQ96OZ394LBoA6qAfwfP9jb3LqEgAqpx4AAAClqAcAAEAp6gEAAFCKegDPt9yoMg3dcn2vxmt7vRnnm0aKecT6A0BnugoCeL5HHPSfnPSW2D+LQzUL188I3UErTQfQCPUAns8eaPqNg07fuv7fZDSPfeDvBGsiHid/UpOmA2iJegBt8yUBz/++o7UsnN5YP85mHvvl4fbve7YHfacntPa6rPnjvSR3fvvA/502DeuIO0cfzTjY0/SNZ5pVt7A347zMP/iSmjQdQGPUA2jcvmfSj/PmoD1M22Tk/v2ftNZ5nKQZfCje4X+fFN+aEPOX51tOdtLzJaKjA3tLSY2kB7yBegDN8yWRX09sMJO3J/g7+LpJ0p0ndXgzb7LyJhD78914u8IV4r89zN/yT1x7I+kBqCCAFxjMtB5M3STzP0SZK69nJZ/CDHyON4HZiU476bltNJtxoKcH4DD1AF5hmKy7GzeJx9PTc+SdTlx6Qp73P7On57Frw4z5SHrA260vKC10q+VAPUz7BOdew3PlXkMLvT/1mt4wfSKnY7uDSe+iRyaCiSlh/yPpAfi9IOndK3bQ3999ubuRJZj0PPNuluGZvjsFat+Z6Z9fM+nF7mxN2f8283vuUJWmA2iKegAAAJSiHgAAAKWoBwAAQCnqAQAAUIp6AAAAlKIeAAAApagHcL9h4jZ0AIDpKgigGOkhcABA89QDKEd7+CwAgDb1AMoh6QHA26kHUE4/mpmkBwBvph5AOb4q5gCAN1EPoLBlYGJ6fADwRuoBlOOtHQcAeJH1xQtKC3EjCwC83fqCpAcAaJ56AOWQ9ADg7dQDKCZegRwA8ALqAdzvf+xNHlcAgJdTDwAAgFLUAwAAoBT1AAAAKEU9ANN1vRnnz3Ld7WPmsa8gJgBAg9QD2Bgmkh4A4DbqAWyQ9AAAN1IPYIOkBwC4kXoAGyQ9AMCN1APYIOkBAG6kHsAGSQ8AcCP1ADZIegCAG60v6igtRNIDANxofUHSAwA0Tz2ADZIeAOBG6gFskPQAADdSD8Aw9iYAoBD1AAAAKEU9AAAASlEPAACAUtQDMN9rerMZe+04AACNUw/ga5hOP+MHAIBAPYB//TibzzSoxwEAaJZ6AJbBTB9OcwIAbqMewAYPpwMAbqQewEY/zuYzj6avIBYAQHPUA9gaJpIeAOAu6gFscDMLAOBG6wtKCwEAmre+qCHpcfcmAOBW6gH849QmAOBm6gF8MSILAOB+6gEYxt4EABSiHgAAAKWoBwAAQCnqAQAAUIr9x/rYwcdMg3pgAABc7fcHD4YDABq3vuAOSgBA89YXJD0AQPPWFyQ9AEDz1heDmRgRBQDQtt6M8/nqCAAAPMD6ggoHAIDmrS+4pgcAaN76gqQHAGje+oKkBwBo3u8PRmQBADTO+qMfzczYmwCAdqkHAABAKeoBAABQinoAAACUoh6AvuVa5jR0phsm87n4IX3tG4T6cTaf5VrtZxrOf+Ywmc88mv6umN3Pv3n7AHgV9QD0NZ70Vv04k/Qevg0BnKYegL5+NPN6ILVfX/T5tRwwn5307ts+T9qGAE5TD+ARhunzO0XoG5x7mKzp2wPk9oC5DvC9Hri/f0/DYKb/+d2D+jrPfvmhROY7SMeS3mb9PAltu/7ue9z49o+9nPv8KywxZn7u5tSwzWrHfpzNPPab97rbe/MIkOdHg9Q+AC6jHkD1+nHeH8DtA5Nwyu2XgJYD7ybxuEnQTU7f6XYC68f5t/xAr2uY9s9axhKk/X/pb3eZ2+n7eM9+/jWOJb39NvTvH5tktemNyklPbA8AV1IP4Hk8B63Yqa/v9MGT8DojHhT70cy7nqVVEaMfzby8d+1xeD+zCyU9T3WNzTI90zfrv1/WdjlnP78OYtLbxGuvk5T0pPYBcDH1AOpnjVSzPwXlTzC236krX29QOCh6E4A9z1r8tzfjNJlpGk0fGEfVm/R862bH6jsA5/T0Lvj8GohJL9gzS/lRE2mfCtYdaIx6AJXbn67z9XTknl4fOA16sqe3Jr1+NNPYm2GazdiviXAbR3JPz+ZZvtuz2V2P2yzj/OfX4LakRx1LoDT1ACr3vcHkd9BabjixDsrfazrh01H2AfP7XvsgJx0UA9fINtNnM03z/y398zT9n/K040i9prflLH+9YWdz0I6fijv3+Vc5d00vloilu2I367/27CLX9GL7YWw/A5BEPYD6be7MnM04jLuk4t7lF7578/feb6JLubvPvrNzf+D+9rTsa2T7042xuw+977Gn26fg5tH0TnzeOxwv/PxrnEt6u3Vw7t6MJq3NKcxvr3y7/wjts9nO9AqBk9QDwJN5n5tze8e4gnRGAUAS9QDwZL7rlEoPkDfrv6dIwgMuoB4AHm5/epOEB6Ba6gEAAFCKegAAAJSiHgAAAKWoB6AvqXTN2VveH+TsIwO581dQOmhzXfIN2xh4L/UA9DWQ9C4tfeMbZiz6HF58/mva/16XlV0CUDv1APRVUK/trDuTXvYyDiU93fYn6QGvoR5A9TanvoJVEnLq4e0f3I7VU4vVa0up9yZ9/m565D2hpJdbb+/6B9cvGGaMpAe8gXoAj+E/MEr18DLHZvT8Ha/X9psnmpAuqGcXWoY0f5mEQtIDkEQ9gMeIJb3Y2Jnx4aPkemrxem1f4aR3XT07/zLk+Z8wfBZJD3gN9QAe42jS+59XGmw5MKpJygE5mPQurGfnXUbi/PFTxPpIesBrqAfwGGeSnvv+aGXxpOVuZfX0bBn17FKTXrwenrv+dSDpAa+hHsBjXJP09p8j1VNLOSDHEs1V9ez8iTW/Ht49CYZregCSqAdQOakeXVoR2PidkfF6amkH5HC9t7P17MTn9KLzp6z/hduJpAcgTj0AQB1JD3gN9QAAdSQ94DXUAwDUMfYm8BrqAQAAUIp6AAAAlKIeAAAApagHgKp5HsmI+D7eUPeQY9HnKPvRzO60CkofoSKeR3KuH0D9QcTvR2/GuarvjHoAUOc+S2cnrTqSXlaFh8P1/r6VMnbrKnypfZUuLivz5FtHqUqGPT00DN1m8PLIdKtdfEPkefef4KDsx4ahc7evf/xXqe3XGC7YN7OTntR+Z9df3j/cbbD9jEh8KftHyo/CYarpx7B6AFC1HxZsO7pLHb9kU2r5na33Fx+/NFzvby39dOe67x72d0f0iUz3fl7ydGfEncD+8Zue+3eu/Q+TYbL+9tVjXA/E40UH3qykJ7XfNesf3f52Urogvt3+k1gPs6LHgtQDgCbvLzD7i7y+tn8p2ju1b8Sa/YFF/CW6Dl/m/BJNrRe4LuNYvb/OP3B2opSkd3T9w1Uy1v9J013SWK/udE/v124racDxxAHJt9snvh3iP258SXb5vFhvI9j+0v4jfT+E9ktcfnj95e0fb6/E+JL3n5gz815KPQAoCv36+n1Rfl/m/y9G7ODh+cIk1e8Tvgxnenop9QLP/AqVkt6p9Xfb2jrd9DudFJmeuL1j078/POwk64616uwL9j4gTV8+P9xzkfevrcAp6th+K+x/8f1H/n5E2y9x/w+uv7j9l0Qz2knVd3o+Et9F35PU73EBqguHstCpLjfpbQ8ikV9su4OSXC/wqlOXR+v9nT3ltuuNCrUPs9Z/jfX/YDabsbe2iTRdaovU6VZPZL8v2P9zr51J0yPr7O6nib2gYMIMJD25JxTbfxK/H8H2S9+3vesvbv/let3uR1a4pxk+VXu+p3bu1O5lVBcOZak9vcNJT6wXmHbN8HDSSzq9du11y82B9+z6/x+M9qeUfz29yHR3W0vVL4I3yWyTWLgm5GzGIbYPSNNjN2NY8Xj22W2PJdSWsVP5Cfvzbv+Rvx/x9svf9zbrL25/33c1J770/SeJUIGmENWFQ5t3J7R/nd/Q09tI62VdmfT2X96zN1d42jRWmT5n/X03IexuHIhM925Tn9idqznXDJf1l+6ejdwoIx4Yg0WKhV5IJOnF2z+2/wjfD7H9Dux7u2umse3v26458aXuP2kquZlFdeFQtz+H77sbbHfNJbTjJlzTc30PWPGbF1J+ZZ6p93fdlzFwd+WJ9XdP2XmvEUamp7RfeHroGlTshhDh1OXuR5G9fy09jZwixKnXxAKxxdtf2n+k74fcfin7v7h/Zewf222dtn2vOi0ZL3Yt38R0kdsXgOo5z+l4ekHJz8B5bzSQP8O9LhZKXr75z9X7i8WdYr9uYuzZ63/yObjoLevp00M3Qhx+hnC1uXNxOf0ZqccYf8Zstb1mGpsutn9uvchA+4faL778A/uXtH8EBl8IxiftH1nHGeGGoTJ3d96+ALxJHefsD6nkzjKgSUl3DtPTw7PID0bX7ZrrFgAc4mNOxU5tmk69MfBs7qmRxyY8a30e2lMF6sTYmwAAaFEPAACAUtQDAACgFPUAULU6Sgtdinp6OIN6elvU08PzUE/vi3p64fFDY8+ZUU+v2Xp6KdOpp4dnoZ6eOD/19KinF9x/Wq+nlxA/9fTwKNTT+6KeXmA69fTi+0/r9fRy6+3FUE8PFaCeXrwdUtuQenqBfYB6eo+vp5dTb09SyahHqguHMurpdebsKTfq6VFPr/l6ekn19hK/K/qDP6guHMqop5ceQyrq6VFPr6V6eqn19pLUMTav6sKhjXp6yTFktSn19OLtQz29Z9TTO7L9Iyq5mUV14VBHPb3/z6eeHvX0Ast7bz29zO0voJ4eKkE9PerpUU8vuAzq6Ynxpx9nqKeH1tRxzv6QSu4sA5pEPT00iHp6ADyop4dmUE8PQBRjbwIAoEU9AAAASlEPAACAUtQDQNXqKC10Kerp4Qzq6W1RTw/PQz29L+rphccPjT2nRT29tuvpZTwHSj091I96euL81NOjnl5w/3lbPT3P9qOeHh6Fenpf1NMLTKeeXnz/abyeXuL2S0M9PVSAenrxdkhtQ+rpBfYB6uk9u55ewvbLUcmoR6oLhzLq6XXm7Ck36ulRT6/denoHtp/0XdEf/EF14VBGPb30GFJRT496ei3V0xO3X446xuZVXTi0UU8vOYasNqWeXrx9qKf3jHp6R7ZvRCU3s6guHOqop/f/+dTTo55eYHnvraeXuX0FXNNDJainRz096ukFl/HyenryM4A5xxnu3kRr6jhnf0glv0KBJlVyatN0FQSAZlBPD4AHI7KgGdTTAxDF2JsAAGhRDwAAgFLUAwAAoBT1ACoQK7sBAGiIegBV4bZ1AGiaegBVIekBQNPUA6gKSQ8AmqYeQFVIegDQNPUAqkLSA4CmqQdQFZIeADRNPYCqkPQAoGnqAVSFpAcATVMPoCokPQBomnoAVSHpAUDT1AOoCkkPAJqmHkAFGHsTAF5CPQAAAEpRDwAAgFLUAwAAoJTOdMO0XM+azKAfEAAAd/n9MUwf85kG7YAAALiL9ccwmc88ml4/KAAA7mD9QdIDALTN+qMfzUzSAwC0y/qjH838mc3YqwcFAMAd3H8MZvp8OM0JAGiR9Uc/mpnHFgAA7bL+4EYWAEDbrD9IegCAtll/kPQAAG37/dGPMyOyAABa1lljb/K4AgCgaeoBAABQinoAAACUoh4AAAClqAcAAEAp6gEAAFBKx/N5AIC3+L4Ypo/5MO4mAKBtvz/6ceZZPQBAy5x/LA+qT4N6YAAAXM35Rz+amXp6AIA2/f7g9CYAoHHfF9zIAgB4gY5HFgAAb6EeAAAApagHAABAKeoBAABQinoAAACUoh4AAABF/

Read operation

You can use find operation to retrieve documents from the collection.

In this section, you will be doing the following:

  • Retrieving documents
  • Querying using relational operators
  • Working on array operators
  • Querying using logical operators
  • Retrieval using regular expression

Syntax:

    db.collection.find(
    	{ <<query criteria>> },
    	{ <<projection criteria>> }
    )

Consider this sample data:

    {
	prodid: 7000001,
	prodname: "iphone 7",
	manufacturer: "apple",
	categories: {main:"electronics",sub:"smartphones"},
	date_of_launch: new Date("2016-09-07"),
	price: 60000,
	colors: ["silver","black","gold","rosegold"]
}

You will be implementing different read operations on this data next.

To retrieve all the documents from the collection:

  1. db.product_catalog.find()
1

You can use db.collection.find().pretty() to display the result in a formatted manner.

2

Projecting only the required fields

Retrieve only the prodname and its price of all the documents

    db.product_catalog.find( 
{ },
{ prodname:1, price:1 }
).pretty()

3

You would have observed that the _id field will always be displayed. In order to suppress it use the following command:

    db.product_catalog.find( 
{ },
{ _id:0, prodname:1, price:1 }
).pretty()
4

Display based on criteria

  1. Retrieve the documents having manufacturer as 'apple'
db.product_catalog.find(
{ manufacturer:"apple" }
)

Retrieve the documents that either does not contain colors field or null value for that field

Using equality filter:

    db.product_catalog.find(
{ colors:null }
)

Using existence check: ( to check the key is present or not)

    db.product_catalog.find(
{ colors: {$exists:true} }
)

The categories field is an embedded document. The below query retrieves the details of the products whose main category is 'electronics':

    db.product_catalog.find(
{ "categories.main":"electronics" }
)

The colors field is an array. To retrieve the names of the products that are available in 'gold' color:

    db.product_catalog.find(
{ colors:"gold" }, -- filter
{ prodname:1 } -- project
)

NOTEBy default, 20 documents can be retrieved at a time. To retrieve specific number of documents at a time, for example: 3 documents, set the shell batch size using the following command:

    DBQuery.shellBatchSize=3

Then, use it at the shell to fetch the next batch of documents.

Querying using relational operators

$eq

To retrieve the names of the products that falls under the 'smartphones' sub category:

    db.product_catalog.find(
{ "categories.sub":{$eq:"smartphones"} },
{ _id:0,prodname:1 }
)

$lt

To retrieve the product names having price less than '25000':

    db.product_catalog.find(
{ price:{$lt:25000} },
{ _id:0,prodname:1 }
)

$ne

Retrieve the documents that have values other than 'electronics' for the main category:

    db.product_catalog.find(
{ "categories.main":{$ne:"electronics"} }
)

Working on array operators

Exact array match

Retrieve the products where colors field has exactly two elements – 'white' and 'black' in the order specified:

    db.product_catalog.find( 
{ colors: ["white", "black"] }
)
data:image/png;base64,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

Array match specifying the number of elements

Query for documents that contain exactly 2 elements for the colors field:

    db.product_catalog.find(
{ colors:{ $size:2 } }
)
data:image/png;base64,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

Match specified array elements

Retrieve the documents containing both the elements 'white' and 'gold' in the colors field, irrespective of the order or presence of other elements:

    db.product_catalog.find(
{ colors : { $all : ["white", "gold"] } }
)
data:image/png;base64,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

Match one or more array elements satisfying the criteria

Retrieve the documents where revisedYears array field contains atleast one element that is both greater than '2015' and less than or equal to '2017':

    db.product_catalog.find( 
{ revisedYears: { $elemMatch: { $gt: 2015, $lte: 2017 } } }
)

Querying using logical operators

$and

Retrieve the details of the 'smartphones' whose price is less than '25000'[inclusive]:

    db.product_catalog.find(
{$and:[
{ "categories.sub":"smartphones" },
{ price:{$lte:25000} }
]
}
)

$or

Retrieve the details of the products whose price is greater than or equal to '80000' or products whose manufacturer is 'apple':

    db.product_catalog.find( 
{ $or: [
{ price: { $gte: 80000 } },
{ manufacturer: "apple" }
]
}
)

$not

Retrieve the products where the ISBN value is not equal to 2343454:

    db.product_catalog.find( 
{ ISBN: { $not: { $eq: 2343454 } }
}
)

$not retrieves documents if ISBN field does not exist also.

Retrieval using regular expressions

You can match patterns via regular expressions for string matching during querying.

Syntax:

    { <field>: { $regex: /pattern/, $options: '<options>' } }
OR
{ <field>: { $regex: 'pattern', $options: '<options>' } }
OR
{ <field>: { $regex: /pattern/<options> } }
OR
{ <field>: /pattern/<options> }

The $options clause takes the following as parameters:

  • i – Performs a case insensitive match
  • m – Performs pattern match that consists of anchors i.e. ^ for the beginning, $ for the end
  • x – Ignores all white space characters in the pattern
  • s – Allows dot character ( . ) to match all characters

Search for the products whose prodname starts with iphone:

db.product_catalog.find(
    { prodname:{ $regex:/^iphone/i } }
)
db.product_catalog.find(
    { prodname:{ $regex: /^very/, $options: ‘i’ } } 
) 

Update operation 

Update operation allows users to modify the existing documents in a collection whenever a change occurs. A criteria or filters needs to be specified.

  • Updating documents
  • Using field update operators
  • Working with array update operators

Syntax:

db.collection.update(
    { <<update criteria>> },
    { <<update action>> },
    { <<update option>> }
    )
Update a single document based on condition

Update the prodname of a book from 'hadoop application architectures' to 'Hadoop architecture':

db.product_catalog.updateOne(
{ prodname : "hadoop application architectures" },
{ $set: { "name" : "Hadoop architecture" } } 
)
Update multiple embedded documents

In the categories field, update the value of gender from 'women' to 'female':

    db.product_catalog.updateMany(
        {"categories.gender":"women"},
        { $set: {"categories.gender":"female"} }
    )
Using upsert to update documents else insert
    db.product_catalog.updateMany(
    { "price" : { $gt : 80000 }, "manufacturer" : "apple" },
    { $set: { "prodname" : "iphone 7 plus" } },
    { upsert: true }
    )
The operation updates all the documents with price greater than '80000' and manufacturer  'apple'. If there are no documents matching the given criteria, a new document would be inserted.

Using field update operators

$inc

Decrease the price of the book with ISBN '1979891' by 20:

    db.product_catalog.update(
        { ISBN: 1979891 },
        { $inc: { price: -20 } }
    )
$max

Update the price of the product with prodid '7000022' to '27500' if the given new value is greater than the current value:
       db.product_catalog.update( 
        { prodid: 7000022 },
        { $max: { price: 27500 } }
    )
$unset

To delete the colors field from the document with prodid 7000022
   
db.product_catalog.update{
{ prodid: 7000022 },
{ $unset:
 {colors: ""} 
}
)

$addToSet
Add 'white' color to the colors field of the document with prodid '7000020':
   db.product_catalog.update(
    { prodid: 7000020 },
    { $addToSet: { colors: "white" } }
    )
$addToSet ensures that the values inserted are unique
[Note: white color does not exist in the current set]

$push allows duplicate values inserted into the array.

$pop

Remove the first element of the colors field from prodid '7000020'
(use -1 to remove the value at the beginning of the array):

    db.product_catalog.update(
	{ prodid: 7000020 },
	{ $pop: { colors: -1 } }
    )

$pullAll

Delete all occurences of 'white' and 'gold' from the colors array:

db.product_catalog.update(
{ prodid: 7000020 },
{ $pullAll: { colors: ['white','gold'] } }
)



Delete operation
Delete operation allows you to delete the documents from a collection that is no longer valid.
You can specify criteria or filters to delete documents.
Syntax:

db.collection.remove(
{ <<remove criteria>> }
)


Requirement 2.4 implementation

Delete the product with prodname 'xperia z'
:

db.product_catalog.deleteOne(
{
prodname: "xperia z"
}
)


To delete all the products having price less than '1000':

db.product_catalog.remove( { price: {$lt : 1000 } }     )

To delete all the documents from the product_catalog collection:

db.product_catalog.remove( {} )

Alternatively, db.collection.deleteMany() is used for deleting multiple documents matching the given criteria.
Bulk write operation

You can also do bulk write operation to perform multiple inserts, updates, deletes on a collection through a single query.

The following write operations are supported:

  • insertOne
  • updateOne
  • updateMany
  • replaceOne
  • deleteOne
  • deleteMany

Requirement 2.5 implementation

In the below query, you will insert a new document with prodid '200025', update the price of 'galaxy 7' from '45000' to '40000' and deletes all the mobiles that comes under the 'smartphones' sub category whose price is less than '4000'

    db.product_catalog.bulkWrite(
[
{ insertOne :
    {
       "document" :
        {
          "prodid":200025,"prodname":"MacBook Air","manufacturer":"apple","price":56000
        }
    }
},
{ updateOne :
{
    "filter" : { "prodname" : "galaxy 7" },
    "update" : { $inc: {"price" : -5000 } }
}
},
{ deleteMany :
    { "filter" :
        {
          "categories.sub" : "smartphones",
          "price": { $lt: 4000 }
        }
    }
}
])

CRUD operations: Exercise

Exercise 2 : ProblemStatement:

Insert the product_catalog dataset provided in the artifacts download into a collection and then perform the following:

  • Retrieve only the prodname and price of the products in the 'smartphones' section.
     db.product_catalog.find(
        {"categories.sub":"smartphones"},
        { prodname : 1 , price:1}
    )
  • List the details of the 'washing machine' that ranges between 20000 to 30000 in ascending order of the product name.    
db.product_catalog.aggregate ({ $match:
{
"$and":[
    { price : { $lte:60000 ,$gte : 40000 } },
    { category : "WashingMachine" }
]
}},
{ $sort:
    { prodname : 1 }
})
or
db.product_catalog.find( {
"$and":[
    { price : { $lte:60000 ,$gte : 40000 } },
    {category:"WashingMachine" }
] } )
.sort({prodname:1} )
  • Retrieve the details of mobiles whose manufacturer is either 'apple' or 'samsung' and its price should be within 60000
        db.product_catalog.find({$and : [
        {$or : [
              {publisher:"apple"},{publisher:"Samsung"}
        ]},
        {category:"Mobile"},
        {price:{$lt:60000} }
    ]})   
})
  • Search for the books whose publisher name starts with 'O'Reilly'
             db.product_catalog.find({ prodname:{$regex:/^s/i} })

Exercise 2: CRUD operations

1. db.product_catalog.find( { "categories.sub": "smartphones" }, {_id:0,prodname:1,price:1} )
2. db.product_catalog.find( { $and: [ {"categories.sub": "washing machine" }, { price: { $gte: 10000, $lte: 20000 } } ] } ).sort( {prodname:1} )
3. db.product_catalog.find( { $and: [ { manufacturer: {$in: ["apple","samsung"] } }, { price: {$lte:60000 } } ] } )
4. db.product_catalog.find( { publisher:{ $regex:/^O'Reilly/i } } )
As expensive exercise,
  • Replace a single document containing manufacturer as Mi to the new document as { "prodname": "Xiaomi Mi Max Prime", "manufacturer": "Xiaomi", price: 20000 } [Hint: replaceOne]     
[Note: The document may or may not exist. If it doesn't exist, create a new one]
  • Retrieve the product details in ascending order of price [Hint: sort]
  • Retrieve the documents from position three to position five in the collection [Hint: skip and limit]
  • Count the total number of 'apple' products in the catalog [Hint: count]

Requirement 3: Using Aggregation

Aggregation methods in MongoDB

Similar to SQL, aggregation is used to perform computations on a set of documents to return a single result.

You can perform aggregation in three ways in MongoDB:

  • Map-Reduce programming
  • Single purpose aggregation methods
  • Aggregation pipeline operations
Implement Map-Reduce programming 

Consider the product_catalog collection where you need to find the total price of products for each manufacturer.

Only fields such as manufacturer and price are required to execute the above query. These are emitted as a key-value pair using the map function.

    map = function() {
    emit ( this.manufacturer, this.price );
    }

The reduce function aggregates the results obtained from the map function.

    reduce = function(key,values) {
        var totalPrice = 0;
        for(var i=0; i<values.length; i++)
        totalPrice += values[i];
        return totalPrice;
    }

The above functions are then used in the map-reduce command of MongoDB as shown:

    db.product_catalog.mapReduce( map, reduce, { out:{inline:1} } )

The inline option displays the results on the screen. Instead, results can be stored into another collection as shown below:

    db.product_catalog.mapReduce( map,reduce,{ out: "countPdts" }

Disadvantage:

Using map-reduce programming, you need to write the query logic using javascript for implementing the map and reduce functions.

Single purpose aggregation methods

The query discussed in map-reduce programming for finding the total price of products for each manufacturer can be performed using a single aggregate function group() as shown below:

    db.product_catalog.group( {    
        key: { manufacturer:1, price:1 },    
        reduce: function ( curr, result )
        {         
             result.totalPrice += curr.price;    
         },    
         initial: { totalPrice:0 }
    } )

We have other single purpose functions such as distinct() and count().

Disadvantage:

Here, you can perform only one aggregation operation at a time.

Work with aggregation pipeline operator

Most commonly used pipeline operators supported by the aggregation framework are shown below:
  • $project - Used to select the required fields based on the query
  • $match - Used to filter the documents based on criteria
  • $group - Used to aggregate a set of documents
  • $sort - Used to display query results in a sorted order
The query discussed earlier for finding the total price of products for each manufacturer is performed in two stages using the required pipeline operators as shown below:



5
db.product_catalog.aggregate( [
{ $project: { _id:0, manufacturer:1, price:1 } },
{ $group: { _id: "$manufacturer", totalPrice: { $sum: "$price" } } }
] )

More examples

  • Sort the collection with ename field ascending.

            db.employee.aggregate( [ { $sort: {ename:1} } ] )

  • Display the total count of products whose price is greater than '5000' and less than '25000'

    db.product_catalog.aggregate( [ { $match : { price : { $gt: 5000, $lt: 25000 } } }, { $group: { _id: null, count: { $sum: 1 } } }, { $project: { _id:0, count:1 } }     ] )
  • Store the first five highest priced products in a new collection named HighPricePdts
    db.product_catalog.aggregate( [ { $sort : { price: -1 } }, { $limit: 5}, { $out: "HighPricePdts"}     ] )
  • Concatenate the prodname and the manufacturer
      db.product_catalog.aggregate( [
    
        $project: { 
         prodman: { $concat:[ "$prodname"," - ","$manufacturer" ] } 
         
      }
    ] )
  • Return a document for each color in the colors array and randomly select 3 documents
    db.product_catalog.aggregate( [ { $unwind : "$colors" } , { $sample: { size: 3 } }     ] )
  • Return the first and the last element in the colors array
     db.product_catalog.aggregate( [     {     $project: {     prodname: 1,     first: { $arrayElemAt: [ "$colors", 0 ] },     last: { $arrayElemAt: [ "$colors", -1] }     }       }     ] )
  • Retrieve the documents with date_of_launch in the format yyyy-mm-dd
     db.product_catalog.aggregate( [ {   $project: {   _id:0, prodname:1, launchdate: { $dateToString: { format: "%Y-%m-%d",
date: "$date_of_launch" } } }   }     ] )


SQL to MongoDB aggregation Mapping chart

ProblemStatement:

Insert the below documents into the employee collection

    { eid:111, ename:"Akaash", loc:"BNG", salary:25000 }     { eid:222, ename:"Alok", loc:"CHD", salary:52000 }     { eid:333, ename:"Amar", loc:"BNG", salary:20000 }     { eid:444, ename:"Akbar", loc:"MYS", salary:60000 }     { eid:555, ename:"Anthony", loc:"CHD", salary:35000 }

Below are the SQL aggregation statements. Write the MongoDB equivalent of it.

  • SELECT loc,SUM(salary) AS total FROM employee GROUP BY loc
    db.employee.aggregate(
        {$project : {loc :1 ,salary:1}},
        { $group: { _id: "$loc",
            total: { $sum: "$salary" }
    }
    })

  • SELECT loc,count(*) FROM employee GROUP BY loc HAVING count(*) > 1
    db.employee.aggregate(
     [ { $group: {
            _id: "$loc",
            count: { $sum: 1 }
     } },
     { $match: { count: { $gt: 1 } } }
    ] )


Requirement 4: Using indexes to enhance performance

Analyze query performance using explain()

Consider a query that retrieves products whose price ranges between '5000' and '20000'. Performance for queries based on indexed and non-indexes fields can be analysed using the explain("executionStats") method as shown below:


    db.product_catalog.find( { price: { $gte: 5000, $lte: 20000 } }     ).explain("executionStats")

Query with no index

The query plan returns the following result without the price field being indexed:

6

Observation:

As seen above, the entire collection of 24 documents is scanned and only 5 documents have been retrieved.

Query with Index

The query plan returns the following result with the price field being indexed:

7

Observation:

As seen above, only 5 index entries and documents matching the query criteria are scanned

Result:

Using indexes, only those documents matching the given query are scanned whereas without indexes, every document needs to be scanned.

Work with indexes

Single field index

Create an index on the price field that is frequently used for querying products in the catalog for faster retrieval.

    db.product_catalog.createIndex( { price:-1 }     )

Compound index

The below query retrieves the list of products with price less than '5000' and rating is 4:

    db.product_catalog.find( { price:{ $lt:5000 }, rating: 4 }     )

To support the above query efficiently, you can create an index on the fields used in the above query:

    db.product_catalog.createIndex( { price:1, rating:-1 }     )

Multikey index

For efficiently querying array fields, multikey index can be created.

The below query indexes elements in ascending order of colors field which is an array in the product_catalog collection.

    db.product_catalog.createIndex( { colors:1 }     )

Text index

In the application, customers would like to perform text based searches, for example: search for either the main category such as 'electronics' or more specifically sub category such as 'smartphones'. Text indexes can be used for this purpose.

First, a text index is created and then $text operator is used to perform text search on the indexed field.

    db.product_catalog.createIndex( { categories:"text" }     )

Now, the above index can be used to retrieve the details of 'smartphones':

    db.product_catalog.find( { $text:{ $search:"smartphones" } }     )

Drop index

An index on colors can be dropped using either the index name or the index field.

    db.product_catalog.dropIndex( "colors_1" )
or
    db.product_catalog.dropIndex( { colors:1 } )

Exercise 4 : ProblemStatement:

As an exploratory exercise, perform the following:

  1. Ensure that the product names are not duplicated [UniqueIndex]

  2. Assume, Zoiva has announced a sale for certain set of mobiles for one hour from the time it has started the sale. The saleDate field for the mobile products are set to the current time. Delete the mobile products automatically after the sale time is over. The time limit being 1 hour. [TTLIndex]

MongoDB BSON types

The below table contains the various types of data supported in BSON and their corresponding number and string alias that can be used while querying the documents.

8
To retrieve the products whose rating field is of 'Null' datatype, either of the below commands can be used:

    db.product_catalog.find( { rating: { $type:10 } }     )

or
    db.product_catalog.find( { rating: { $type:"null" } }     )

Query and projection operators

Below are the various query and projection operators available in MongoDB.

Comparison Query Operators

1

Logical Query Operators

2

Element Query Operators

3

Array Query Operators

4

Query and projection operators

Exercise 5 : ProblemStatement:

  1. Write the MongoDB equivalent of the following:

    1. SELECT * FROM product_catalog WHERE publisher!= 'Shroff';

    2. SELECT * FROM product_catalog WHERE (price>=1000 AND price<=20000) OR (manufacturer IN('nike','reebok'));

  2. Query for documents in the 'shoes' category that contains exactly 2 colors

  3. Remove books whose ISBN is neither 2323232 nor 1979891
----------------------------------------------------------------------------------------------------------------------------------

Exercise 5: Query and projection operators
============================================

1(1)	db.product_catalog.find( { publisher: {$ne:"Shroff"} } )

1(2)	db.product_catalog.find( { $or: [ { price: {$gte:1000, $lte:20000} }, {manufacturer: { $in: [ "nike", "reebok" ] } } ] } ).pretty()

2.	db.product_catalog.find( { "categories.main": "shoes", colors:{ $size:2 } } )

3.	db.product_catalog.remove( { "categories.main": "books", ISBN: { $nin: [2323232,1979891] } } )

----------------------------------------------------------------------------------------------------------------------------------

Update Operators

There are various update operators available and are as follows:

Field Update Operators

5

Array Update Operators

6

Array Update Modifiers

7

Exercise 6 : ProblemStatement:

  1. Update the color 'black' to 'jet black' in the colors array without specifying its position

  2. Update 'iphone 7' date_of_launch to today's date

  3. Rename the prodname to productname for all the documents in the collection

  4. Add new colors 'red' and 'purple' at the beginning of the array for 'nike' products

-----------------------------------------------------------------------------------

Exercise 6: Update operators
==============================

1.	db.product_catalog.updateMany( {colors:'black'}, { $set:{ 'colors.$': 'jet black' } } )

2.	db.product_catalog.update({prodname:"iphone 7"},{ $currentDate:{date_of_launch:true}})

3.	db.product_catalog.updateMany({},{$rename:{"prodname":"productname"}})

4.	db.product_catalog.updateMany( {manufacturer:"nike"}, {$push:{colors:{$each:["red","purple"],$position:0} } } )
-----------------------------------------------------------------------------------
Solutions :
Exercise 1: Installation and configuration of MongoDB
======================================================

1. db.version()

2. Suppose, the data path is /user/sahana_basavaraja/MongoDBPath
   Then, the command to change the default data path is mongod --dbpath /user/sahana_basavaraja/MongoDBPath

3. mongod --repair

-------------------------------------------------------------------------------
Exercise 2: CRUD operations
===========================

1. db.product_catalog.find( { "categories.sub": "smartphones" }, {_id:0,prodname:1,price:1} )

2. db.product_catalog.find( { $and: [ {"categories.sub": "washing machine" }, { price: { $gte: 10000, $lte: 20000 } } ] } ).sort( {prodname:1} )

3. db.product_catalog.find( { $and: [ { manufacturer: {$in: ["apple","samsung"] } }, { price: {$lte:60000 } } ] } )

4. db.product_catalog.find( { publisher:{ $regex:/^O'Reilly/i } } )

-----------------------------------------------------------------------------

Exercise 3: SQL to MongoDB aggregation mapping chart
=====================================================

1. db.employee.aggregate( [
   {
     $group: {
        _id: "$loc",
        total: { $sum: "$salary" }
     }
   }
] )


2. db.employee.aggregate( [
   {
     $group: {
        _id: "$loc",
        count: { $sum: 1 }
     }
   },
   { $match: { count: { $gt: 1 } } }
] )

-----------------------------------------------------------------------------
Exercise 5: Query and projection operators
============================================
1(1)	db.product_catalog.find( { publisher: {$ne:"Shroff"} } )
1(2)	db.product_catalog.find( { $or: [ { price: {$gte:1000, $lte:20000} }, {manufacturer: { $in: [ "nike", "reebok" ] } } ] } ).pretty()
2.	db.product_catalog.find( { "categories.main": "shoes", colors:{ $size:2 } } )
3.	db.product_catalog.remove( { "categories.main": "books", ISBN: { $nin: [2323232,1979891] } } )
-----------------------------------------------------------------------------
Exercise 6: Update operators
==============================

1.	db.product_catalog.updateMany( {colors:'black'}, { $set:{ 'colors.$': 'jet black' } } )
2.	db.product_catalog.update({prodname:"iphone 7"},{ $currentDate:{date_of_launch:true}})
3.	db.product_catalog.updateMany({},{$rename:{"prodname":"productname"}})
4.	db.product_catalog.updateMany( {manufacturer:"nike"}, {$push:{colors:{$each:["red","purple"],$position:0} } } )

------------------------------------------------------------------------------
Additional references

ProblemStatement:

Real life scenario: Customer entitlement portfolio for a networking major
A major client is a leading provider of networking products. It has multiple RDBMS systems to manage service

contracts for the various hardware and software products it has sold to customers.  


The company’s RDBMS strategy has spawned multiple systems for each region.

Each region’s customers and the products they have purchased are captured in RDBMS.

There are a billion documents of this installed base of products.

Companies have service contracts on these installed products. Each service contract

for the covered products has a list of entitlements that are owed to a customer. Each customer

also has multiple users from its organization, who have various roles assigned to them under

each covered product in a contract. Some of these roles can be 'admin', 'user', 'audit', 'reports'.

This entire system is called Entitlement System.

RDBMS systems was not able to scale to hundreds of millions of contracts, products and

tens of millions of customers. MongoDB is used to merge all this data on a single platform

to achieve a single view of the customer.

In this assignment, you will be working on the sample data sets of the Entitlement System

  1. Create a database named Entitlement and insert the given collections [Use Source code]
  2. Find the number of active contracts [Hint: Active Contract defines any contract which has the end date greater than the current date]

  3. Identify the methods entitled for an 'audit' role

  4. Retrieve the user details where the username starts with 'telecom'

  5. Find the maximum used product [Hint: Use installedbase collection]

  6. Find all the contracts that are expiring in the next one month

  7. Update the address of 'bigdatasoft' customer as address: {city: "BrisbaneIL", country: "Australia"}

  8. Output a document for each element in the methods_entitled array from the roles collection into RoleMethods collection

  9. Add another product 'si-erp-SAP' to the userToProduct collection having '_id=114'

  10. What are the indexes which will improve the performance of queries in this scenario

As an exploratory exercise, perform the following:

[Hint: Use $lookup aggregate operator for the below queries]

  1. Find all active contracts and the methods entitled with it. Display the contractid and the methods_entitled

  2. Find all the products for a given customer

  3. Find all the customers for a given produc

db.getCollection('orders').aggregate(
   [
     {
       $project:
         {
           doc: "$$ROOT",
           year: { $year: "$created" },
           month: { $month: "$created" },
           day: { $dayOfMonth: "$created" }
         }
     },
     { $match : { "month" : 4, "year": 2016 } }
   you want all the orders which are created in April 2016 you can use below query.
db.getCollection('orders').aggregate(
[
  {
    $project:
    {
      doc: "$$ROOT",
      year: { $year: "$created" },
      month: { $month: "$created" },
      day: { $dayOfMonth: "$created" }
    }
},
{ $match : { "month" : 4, "year": 2016 }}]) 
> db.specificMonthDemo.aggregate([ 
{$project: {
StudentName: 1, 
StudentDateOfBirth:{$month: '$StudentDateOfBirth'}}}, 
{$match: {StudentDateOfBirth: 01}}
]).pretty();
Source  co
use Entitlement db.customers.insert({_id:1, custs: {city:"Bangalore", country:"INDIA"} }); db.customers.insert({_id:2, custname: "stayinhotels", address: {city:"Mumbai", country:"INDIA"} }); db.customers.insert({_id:3, custname: "randompublish",address: {city:"NewDelhi", country:"INDIA"} }); db.customers.insert({_id:4, custname: "justpearls", add {city:"Hyderabad", country:"INDIA"} }); db.customers.insert({_id:5, custname: "jaguarmotors", address: {city:"London", country:"UK"} }); db.customers.insert({_id:6, custname: "bigdatasoft", address: {city:"PaloAlto", country:"USA"} }); db.customers.insert({_id:7, custname: "telecomair", address: {city:"Sydney", country:"AUSTRALIA"} }); db.users.insert({_id:101, username: "megaretailadmin", custid: 1 }); db.users.insert({_id:102, username: "megaretailuser", custid: 1 }); db.users.insert({_id:103, username: "stayinhotelsadmin", custid: 2 }); db.users.insert({_id:104, username: "stayinhotelsuser", custid: 2 }); db.users.insert({_id:105, username: "randompublishadmin", custid: 3 }); db.users.insert({_id:106, username: "randompublishuser", custid: 3 }); db.users.insert({_id:107, username: "justpearlsadmin", custid: 4 }); db.users.insert({_id:108, username: "justpearlsuser", custid: 4 }); db.users.insert({_id:109, username: "jaguarmotorsadmin", custid: 5 }); db.users.insert({_id:110, username: "jaguarmotorsuser", custid: 5 }); db.users.insert({_id:111, username: "bigdatasoftadmin", custid: 6 }); db.users.insert({_id:112, username: "bigdatasoftuser", custid: 6 }); db.users.insert({_id:113, username: "telecomairadmin", custid: 7 }); db.users.insert({_id:114, username: "telecomairuser", custid: 7 }); db.roles.insert({_id:11, rolename: "admin", methods_entitled : ["create","drop"] }); db.roles.insert({_id:12, rolename: "user", methods_entitled : ["insert","update","delete"] }); db.roles.insert({_id:13, rolename: "audit", methods_entitled : ["audit"] }); db.roles.insert({_id:14, rolename: "report", methods_entitled : ["read"] }); db.roles.insert({_id:15, rolename: "support", methods_entitled : ["tickets"] }); db.contracts.insert({_id:501, custid: 1, fromdt: new ISODate('2016-01-23'), enddt: new ISODate('2017-01-22')}) db.contracts.insert({_id:502, custid: 1, fromdt: new ISODate('2017-01-15'), enddt: new ISODate('2018-01-14')}) db.contracts.insert({_id:503, custid: 2, fromdt: new ISODate('2016-01-01'), enddt: new ISODate('2017-31-12')}) db.contracts.insert({_id:504, custid: 2, fromdt: new ISODate('2016-01-01'), enddt: new ISODate('2016-31-12')}) db.contracts.insert({_id:505, custid: 2, fromdt: new ISODate('2017-01-01'), enddt: new ISODate('2017-31-12')}) db.contracts.insert({_id:506, custid: 3, fromdt: new ISODate('2014-01-01'), enddt: new ISODate('2014-31-12')}) db.contracts.insert({_id:507, custid: 4, fromdt: new ISODate('2014-01-01'), enddt: new ISODate('2015-31-12') }) db.contracts.insert({_id:508, custid: 5, fromdt: new ISODate('2015-01-01'), enddt: new ISODate('2016-31-12') }) db.contracts.insert({_id:509, custid: 6, fromdt: new ISODate('2016-05-17'), enddt: new ISODate('2017-05-16') }) db.contracts.insert({_id:510, custid: 7, fromdt: new ISODate('2017-02-15'), enddt: new ISODate('2018-02-14')}) db.userToContract.remove({}); db.userToContract.insert({_id:101, contractids: [501, 502] }); db.userToContract.insert({_id:102, contractids: [502] }); db.userToContract.insert({_id:103, contractids: [503,504,505] }); db.userToContract.insert({_id:104, contractids: [504,505] }); db.userToContract.insert({_id:105, contractids: [506] }); db.userToContract.insert({_id:106, contractids: [506] }); db.userToContract.insert({_id:107, contractids: [507] }); db.userToContract.insert({_id:108, contractids: [507] }); db.userToContract.insert({_id:109, contractids: [508] }); db.userToContract.insert({_id:110, contractids: [508] }); db.userToContract.insert({_id:111, contractids: [509] }); db.userToContract.insert({_id:112, contractids: [509] }); db.userToContract.insert({_id:113, contractids: [510] }); db.userToContract.insert({_id:114, contractids: [510] }); db.userRoleContract.insert({_id:101, contractids: [501, 502], roles: ["admin", "audit"] }); db.userRoleContract.insert({_id:102, contractids: [502], roles: ["user", "report", "support"] }); db.userRoleContract.insert({_id:103, contractids: [503,504,505], roles: ["admin", "audit"] }); db.userRoleContract.insert({_id:104, contractids: [504,505], roles: ["user", "report", "support"] }); db.userRoleContract.insert({_id:105, contractids: [506], roles: ["admin","audit","user","support" ] }); db.userRoleContract.insert({_id:106, contractids: [506], roles : ["report"] }); db.userRoleContract.insert({_id:107, contractids: [507], roles : ["admin","audit","user","report", "support" ] }); db.userRoleContract.insert({_id:108, contractids: [507], roles : ["admin","audit","user","report", "support" ] }); db.userRoleContract.insert({_id:109, contractids: [508], roles : ["admin"] }); db.userRoleContract.insert({_id:110, contractids: [508], roles : ["audit","user","report", "support" ] }); db.userRoleContract.insert({_id:111, contractids: [509], roles : ["admin","audit","user","report", "support" ] }); db.userRoleContract.insert({_id:112, contractids: [509], roles : ["admin","audit","user","report", "support" ] }); db.userRoleContract.insert({_id:113, contractids: [510], roles : ["admin" ] }); db.userRoleContract.insert({_id:114, contractids: [510], roles : ["admin","audit","user","report", "support" ] }); db.serviceline.insert ({_id:601, contractid: 501, serviceline :"datacenter" }) db.serviceline.insert ({_id:602, contractid: 502, serviceline :"networks" }) db.serviceline.insert ({_id:603, contractid: 503, serviceline :"analytics" }) db.serviceline.insert ({_id:604, contractid: 504, serviceline :"networks" }) db.serviceline.insert ({_id:605, contractid: 505, serviceline :"datacenter" }) db.serviceline.insert ({_id:606, contractid: 506, serviceline :"networks" }) db.serviceline.insert ({_id:607, contractid: 507, serviceline :"analytics" }) db.serviceline.insert ({_id:608, contractid: 508, serviceline :"systemsintegration" }) db.serviceline.insert ({_id:609, contractid: 509, serviceline :"systemsintegration" }) db.serviceline.insert ({_id:610, contractid: 510, serviceline :"networks" }) db.installedbase.insert({_id:801,serviceline_id: 601, product:"datacenter_bridge" }) db.installedbase.insert({_id:802, serviceline_id: 602,product:"network_router" }) db.installedbase.insert({_id:803,serviceline_id: 603, product:"hadoop-hiveDW" }) db.installedbase.insert({_id:804, serviceline_id: 604,product:"network_router" }) db.installedbase.insert({_id:805,serviceline_id: 605, product:"datacenter_switch" }) db.installedbase.insert({_id:806,serviceline_id: 606, product:"network_router" }) db.installedbase.insert({_id:807,serviceline_id: 607, product:"hadoop-hiveDW" }) db.installedbase.insert({_id:808,serviceline_id: 608, product:"si-eai" }) db.installedbase.insert({_id:809,serviceline_id: 609, product:"si-erp-SAP" }) db.installedbase.insert({_id:810,serviceline_id: 610, product:"network_router" }) db.userToProduct.insert({_id:101, product: ["datacenter_bridge", "network_router"] }); db.userToProduct.insert({_id:102, product: ["network_router"] }); db.userToProduct.insert({_id:103, product: ["hadoop-hiveDW","network_router","datacenter_switch"] }); db.userToProduct.insert({_id:104, product: ["network_router", "datacenter_switch"] }); db.userToProduct.insert({_id:105, product: ["network_router"] }); db.userToProduct.insert({_id:106, product: ["network_router"] }); db.userToProduct.insert({_id:107, product: ["hadoop-hiveDW"] }); db.userToProduct.insert({_id:108, product: ["hadoop-hiveDW"] }); db.userToProduct.insert({_id:109, product: ["si-eai"] }); db.userToProduct.insert({_id:110, product: ["si-eai"] }); db.userToProduct.insert({_id:111, product: ["si-erp-SAP"] }); db.userToProduct.insert({_id:112, product: ["si-erp-SAP"] }); db.userToProduct.insert({_id:113, product: ["network_router"] }); db.userToProduct.insert({_id:114, product: ["network_router"] });





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Featured Post

HTML cheetsheet

List: Link tgs Dropdown

image

Popular Post

(C) Copyright 2018, All rights resrved InShortView. Template by colorlib