Create OR Use existing Database
use bank;
Create a new collection.
db.createCollection("users");
Add Records in collection.
db.users.insert([{"isActive":false,"balance":"$3,960.64","age":30,"eyeColor":"blue","name":"Dawn Keith","gender":"female","company":"COSMOSIS","email":"dawnkeith@cosmosis.com","phone":"+1 (839) 437-3421","address":"392 Clifford Place, Fontanelle, Arizona, 2687"},{"isActive":false,"balance":"$1,280.14","age":31,"eyeColor":"green","name":"Bettie Eaton","gender":"female","company":"COMTREK","email":"bettieeaton@comtrek.com","phone":"+1 (861) 460-2317","address":"203 Allen Avenue, Elrama, North Carolina, 4453"},{"isActive":true,"balance":"$2,042.37","age":38,"eyeColor":"green","name":"Margie Ayala","gender":"female","company":"VOIPA","email":"margieayala@voipa.com","phone":"+1 (941) 569-2231","address":"111 Schroeders Avenue, Suitland, Louisiana, 7042"},{"isActive":false,"balance":"$3,170.35","age":37,"eyeColor":"blue","name":"Baker Townsend","gender":"male","company":"EVIDENDS","email":"bakertownsend@evidends.com","phone":"+1 (808) 500-2793","address":"190 Just Court, Canoochee, Alabama, 325"}]);
Get all records
db.users.find().pretty();
Analyse the Query
db.users.find().explain("executionStats");
Add Index on collection
db.users.ensureIndex({"age":1});
Get all indexes on collection.
db.users.getIndexes();Output
[ { "v": 1, "key": { "_id": 1 }, "name": "_id_", "ns": "bank.users" }, { "v": 1, "key": { "age": 1 }, "name": "age_1", "ns": "bank.users" } ]
Delete Index on collection.
db.users.dropIndex({"age":1});Output
{ "nIndexesWas": 2, "ok": 1 }
Drop all indexes.
db.users.dropIndexes();Output
{ "nIndexesWas": 1, "msg": "non-_id indexes dropped for collection", "ok": 1 }
Check Indexes, after droping an index.
db.users.getIndexes();Output
[ { "v": 1, "key": { "_id": 1 }, "name": "_id_", "ns": "bank.users" } ]
ReIndex the collecton.
db.users.reIndex()Output
{ "nIndexesWas": 1, "nIndexes": 1, "indexes": [ { "key": { "_id": 1 }, "name": "_id_", "ns": "bank.users" } ], "ok": 1 }
Simple Aggregate Example
db.users.aggregate({$group:{_id:"$age",total:{$sum:1}}});Output
{ "_id": 37, "total": 1 }{ "_id": 38, "total": 1 }{ "_id": 31, "total": 1 }{ "_id": 30, "total": 2 }
Average Aggregate Example
db.users.aggregate({$group:{_id:"$gender",avgAge:{$avg:"$age"}}});Output
{ "_id": "female", "avgAge": 32.25 }{ "_id": "male", "avgAge": 37 }
Max Value in Aggregate
db.users.aggregate({$group:{_id:"$gender",richest:{$max:"$balance"}}});Output
{ "_id": "female", "richest": "$3,960.64" }{ "_id": "male", "richest": "$3,170.35" }