CHECKOUT_DATABASE:
	show dbs - show all dbs
	set some_name_db - set current db
	show collections - all collections of current db
	db.stats() - stats of DB
	db.users.stats() - some stats

ADD_DATA:
	insertOne() - insert document to collection
	insertMany()

EXAMPLE:
	db.collection_name.insertOne({"name":"Tom", "age": 28, languages: ["english":"spanish"]})
	
	db.collection_name.insertMany([{"name": "Bob", "age": 26, languages: ["english", "french"]}, 
	{"name": "Alice", "age": 31, languages:["german", "english"]}])

WITH_FILE: example.js AND CONTENT
	db.users.insertMany([
	{"name": "Alice", "age": 31, languages: ["english", "french"]},
	{"name": "Lene", "age": 29, languages: ["english", "spanish"]},
	{"name": "Kate", "age": 30, languages: ["german", "russian"]}
	])

load("example.js") - this command will load previous example in db

DOCUMENT_FILTER:
	db.collection_name.find() - show all documents in colleciton

EXAMPLES:
	db.collection_name.find({name: "Tom"}) - find documents with names
	db.collection_name.find({name: "Tom", age: 32}) - find documents with name and age
	db.collection_name.find({name: "Tom", languages: null}) - find documents with name Tom and languages undefined
	db.collection_name.find({languages: ["english", "german"]}) - find documents with language english and german
	db.collection_name.find({"languages.0": "english"}) - find documents with language english on first place and english
	db.collection_name.find({name: "Tom"}, {age: 1}) - find only with name Tom and return only age
	db.collection_name.find({name: "Tom"}, {age: 0}) - find only with name Tom and return everything but not age
	db.collection_name.find({name: "Tom"}, {age: true, _id: false}) - find with name tom and return with age but not id
	db.collection_name.find({}, {age: 1, _id: 0}) - find everything and show no id and only age

	db.collection_name.insertOne({"name": "Alex", "age": 28, company: {"name":"Microsoft", "country":"USA"}})		
	db.collection_name.find({"company.name": "Microsoft"})

SORT_AND_PAGINATION:
	db.users.find().limit(3) - get only 3
	db.users.find().skip(3) - get all but skip first 3
	db.users.find().skip(3).limit(3) - skip 3 and get next 3
	
SORT:
	db.users.find().sort({name: 1}) - sort (1 up) (-1 down)

SLICE: its combination of limit+skip (have two forms) slice(limit) slice(limit, skip)
	db.users.insertOne({"name": "Tom", "age": 32, languages: ["english", "german", "spanish"]})
	db.users.find ({name: "Tom"}, {languages: {$slice : 1}})
	db.users.find ({name: "Tom"}, {languages: {$slice : -1}})
	db.users.find ({name: "Tom"}, {languages: {$slice : [-2, 1]}})

COLLECTION_CHANGES:
	db.createCollection("accounts")
	db.users.renameCollection("new_name")
	db.createCollection("profiles", {capped:true, size:9500})
	db.createCollection("profiles", {capped:true, size:9500, max: 150})