{"id":1001,"date":"2021-02-02T03:56:31","date_gmt":"2021-02-02T03:56:31","guid":{"rendered":"https:\/\/codeinsightacademy.com\/blog\/?p=1001"},"modified":"2023-12-16T05:56:05","modified_gmt":"2023-12-16T05:56:05","slug":"mongodb-cheat-sheet","status":"publish","type":"post","link":"https:\/\/codeinsightacademy.com\/blog\/database\/mongodb-cheat-sheet\/","title":{"rendered":"MongoDB Cheat Sheet"},"content":{"rendered":"\n<p>MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/4.bp.blogspot.com\/-edz2_QrFvCE\/UnzBhKZE3FI\/AAAAAAAAAEs\/bTEsqnZFTXw\/s400\/SQL-MongoDB+Correspondence.PNG\" alt=\"\" width=\"500\" height=\"250\"\/><\/figure><\/div>\n\n\n\n<p>to start server (mongo<strong>d<\/strong> is mongo deamon)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mongod<\/code><\/pre>\n\n\n\n<p>to start shell<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mongo<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>show dbs;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>create\/use database<\/code><\/pre>\n\n\n\n<p>Change database<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use db_name;<\/code><\/pre>\n\n\n\n<p>show current database<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db;<\/code><\/pre>\n\n\n\n<p>Collections are similar to table<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show collections;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>db.createCollection(\"students\");<\/code><\/pre>\n\n\n\n<p>Drop collection\/table<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.drop();<\/code><\/pre>\n\n\n\n<p>drop database<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.dropDatabase();<\/code><\/pre>\n\n\n\n<p>insertOne<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.insertOne({_id: 1, name: \"shailesh\"});<\/code><\/pre>\n\n\n\n<p>insertMany<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.insertMany(&#91;{_id: 2, name: \"bagde\"}, {_id: 3, name: \"sheldon\"}]);<\/code><\/pre>\n\n\n\n<p>count document<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.count();<\/code><\/pre>\n\n\n\n<p>select all documents\/records<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find();<\/code><\/pre>\n\n\n\n<p>select with projection<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({},{_id: 0});\ndb.students.find({},{name:0});<\/code><\/pre>\n\n\n\n<p>exists operator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({age: {$exists: false}});<\/code><\/pre>\n\n\n\n<h2 class=\"has-text-align-center\">COMPARISON OPERATORS<\/h2>\n\n\n\n<p>in operator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({_id: {$in: &#91;2,3]}});<\/code><\/pre>\n\n\n\n<p>not equal operator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({_id: {$ne: 2}});<\/code><\/pre>\n\n\n\n<p>equal operator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({_id: {$eq: 2}});<\/code><\/pre>\n\n\n\n<p>less than $lt<\/p>\n\n\n\n<p>less than equal $lte<\/p>\n\n\n\n<p>greather than $gt<\/p>\n\n\n\n<p>greater than equal $gte<\/p>\n\n\n\n<h2 class=\"has-text-align-center\">LOGICAL OPERATORS<\/h2>\n\n\n\n<p>$and operator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({$and : &#91;{_id : {$gt:1}}, {_id: {$lt: 4}}]})<\/code><\/pre>\n\n\n\n<p>$or operator<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({$or : &#91;{name : \"bagde\"}, {name: \"shailesh\"}]})<\/code><\/pre>\n\n\n\n<p>like case insensitive<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({name: \/h\/i})<\/code><\/pre>\n\n\n\n<p>exact match<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({name: \/^BagDe$\/i})<\/code><\/pre>\n\n\n\n<h2 class=\"has-text-align-center\">UPDATE<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.updateOne({_id: 1}, {$set : {age: 23}});\ndb.students.updateMany({age : {$exists: false}}, { $set : {age : 25}})<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.updateMany({}, {$set: {address: {city: \"Mumbai\", state: \"MH\"}}})\ndb.students.updateOne({_id: 4}, { $set : {address : {city: \"Nagpur\"}}});<\/code><\/pre>\n\n\n\n<p>Unset\/Delete Fields<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.updateMany({}, {$unset : {city: \"\"}});<\/code><\/pre>\n\n\n\n<p>search within sub document<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find({\"address.city\" : \"Nagpur\"}).pretty();<\/code><\/pre>\n\n\n\n<p>Delete Records<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.deleteOne({ $or : &#91;{ age : {$lt : 25}}, {name : \"sheldon\"}] })<\/code><\/pre>\n\n\n\n<h2 class=\"has-text-align-center\">DISTINCT<\/h2>\n\n\n\n<p>db.students.distinct(&#8220;city&#8221;)<\/p>\n\n\n\n<h2 class=\"has-text-align-center\">ORDER BY<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find().sort({name: -1})<\/code><\/pre>\n\n\n\n<h2 class=\"has-text-align-center\">LIMIT<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>db.students.find().limit(10)\ndb.students.find().skip(5).limit(10)<\/code><\/pre>\n\n\n\n<h2 class=\"has-text-align-center\">Aggregation<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Aggregate on all documents\ndb.emps.aggregate(&#91;{$group: {\n\t_id : null,\n\ttotal : {$sum : \"$salary\"},\n\taverage : {$avg: \"$salary\"},\n\tmin : {$min: \"$salary\"},\n\tmax : {$max: \"$salary\"},\n\tcount : {$sum: 1}\t\n}}]).pretty()\n\n\nAggregate on group by address\ndb.emps.aggregate(&#91;{$group: {\n\t_id : { address: \"$address\" },\n\ttotal : {$sum : \"$salary\"},\n\taverage : {$avg: \"$salary\"},\n\tmin : {$min: \"$salary\"},\n\tmax : {$max: \"$salary\"},\n\tcount : {$sum: 1}\t\n}}]).pretty()\n<\/code><\/pre>\n\n\n\n<h2 class=\"has-text-align-center\">ForEach Map<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>db.emps.find().forEach(x =&gt; { print(x.name) })\n\ndb.emps.find({salary: { $exists: -1 } }, {\"salary\": 1, _id: 0}).map(x =&gt; x.salary * 0.10)<\/code><\/pre>\n\n\n\n<!--db.emps.find({salary: { $exists: -1 } }, {\"salary\": 1, _id: 0}).map(x => x.salary).reduce((t, x) => t += x)\n\ndb.emps.find({salary: { $exists: -1 } }, {name: 1, salary: 1, _id: 0}).map(x => x).filter(x => x.salary > 50000)-->\n\n\n\n<h2 class=\"has-text-align-center\">MongoDB Assignment for Practice<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">var docs = [\n{\"name\":\"neha\",\"contact_number\":\"9833910534\",\"address\":\"mumbai\",\"salary\":30000,\"employee_id\":98821,\"role\":\"manager\"},\n{\"name\":\"mina\",\"contact_number\":\"9833910535\",\"address\":\"thane\",\"salary\":32000,\"employee_id\":98823,\"role\":\"sales\"},\n{\"name\":\"pankaj\",\"contact_number\":\"9833910536\",\"address\":\"bhopal\",\"salary\":40000,\"employee_id\":98824,\"role\":\"hr\"},\n{\"name\":\"mareena\",\"contact_number\":\"9833910537\",\"address\":\"meerut\",\"salary\":45000,\"employee_id\":98825,\"role\":\"support\"},\n{\"name\":\"pooja\",\"contact_number\":\"9833910538\",\"address\":\"delhi\",\"salary\":50000,\"employee_id\":98826,\"role\":\"developer\"},\n{\"name\":\"namita\",\"contact_number\":\"9833910539\",\"address\":\"surat\",\"salary\":52000,\"employee_id\":98820,\"role\":\"sales\"},\n{\"name\":\"sneha\",\"contact_number\":\"9833910510\",\"address\":\"baroda\",\"salary\":55000,\"employee_id\":98827,\"role\":\"support\"},\n{\"name\":\"anjali\",\"contact_number\":\"9833910511\",\"address\":\"ahmedabad\",\"salary\":60000,\"employee_id\":98828,\"role\":\"tester\"},\n{\"name\":\"harsha\",\"contact_number\":\"9833910512\",\"address\":\"mumbai\",\"salary\":20000,\"employee_id\":98829,\"role\":\"operations\"},\n{\"name\":\"varun\",\"contact_number\":\"9833910512\",\"address\":\"mehsana\",\"salary\":56000,\"employee_id\":98831,\"role\":\"tester\"},\n{\"name\":\"preeti\",\"contact_number\":\"9833910513\",\"address\":\"noida\",\"salary\":87000,\"employee_id\":98832,\"role\":\"developer\"},\n{\"name\":\"madhu\",\"contact_number\":\"9833910525\",\"address\":\"bangalore\",\"salary\":22000,\"employee_id\":98833,\"role\":\"sales\"}\n];\n\ndb.createCollection(\"emps\");\ndb.emps.insertMany(docs);\ndb.emps.find();\n\n<\/pre>\n\n\n\n<p>var docs = [{&#8220;name&#8221;:&#8221;neha&#8221;,&#8221;contact_number&#8221;:&#8221;9833910534&#8243;,&#8221;address&#8221;:&#8221;mumbai&#8221;,&#8221;salary&#8221;:30000,&#8221;employee_id&#8221;:98821,&#8221;role&#8221;:&#8221;manager&#8221;},{&#8220;name&#8221;:&#8221;mina&#8221;,&#8221;contact_number&#8221;:&#8221;9833910535&#8243;,&#8221;address&#8221;:&#8221;thane&#8221;,&#8221;salary&#8221;:32000,&#8221;employee_id&#8221;:98823,&#8221;role&#8221;:&#8221;sales&#8221;},{&#8220;name&#8221;:&#8221;pankaj&#8221;,&#8221;contact_number&#8221;:&#8221;9833910536&#8243;,&#8221;address&#8221;:&#8221;bhopal&#8221;,&#8221;salary&#8221;:40000,&#8221;employee_id&#8221;:98824,&#8221;role&#8221;:&#8221;hr&#8221;},{&#8220;name&#8221;:&#8221;mareena&#8221;,&#8221;contact_number&#8221;:&#8221;9833910537&#8243;,&#8221;address&#8221;:&#8221;meerut&#8221;,&#8221;salary&#8221;:45000,&#8221;employee_id&#8221;:98825,&#8221;role&#8221;:&#8221;support&#8221;},{&#8220;name&#8221;:&#8221;pooja&#8221;,&#8221;contact_number&#8221;:&#8221;9833910538&#8243;,&#8221;address&#8221;:&#8221;delhi&#8221;,&#8221;salary&#8221;:50000,&#8221;employee_id&#8221;:98826,&#8221;role&#8221;:&#8221;developer&#8221;},{&#8220;name&#8221;:&#8221;namita&#8221;,&#8221;contact_number&#8221;:&#8221;9833910539&#8243;,&#8221;address&#8221;:&#8221;surat&#8221;,&#8221;salary&#8221;:52000,&#8221;employee_id&#8221;:98820,&#8221;role&#8221;:&#8221;sales&#8221;},{&#8220;name&#8221;:&#8221;sneha&#8221;,&#8221;contact_number&#8221;:&#8221;9833910510&#8243;,&#8221;address&#8221;:&#8221;baroda&#8221;,&#8221;salary&#8221;:55000,&#8221;employee_id&#8221;:98827,&#8221;role&#8221;:&#8221;support&#8221;},{&#8220;name&#8221;:&#8221;anjali&#8221;,&#8221;contact_number&#8221;:&#8221;9833910511&#8243;,&#8221;address&#8221;:&#8221;ahmedabad&#8221;,&#8221;salary&#8221;:60000,&#8221;employee_id&#8221;:98828,&#8221;role&#8221;:&#8221;tester&#8221;},{&#8220;name&#8221;:&#8221;harsha&#8221;,&#8221;contact_number&#8221;:&#8221;9833910512&#8243;,&#8221;address&#8221;:&#8221;mumbai&#8221;,&#8221;salary&#8221;:20000,&#8221;employee_id&#8221;:98829,&#8221;role&#8221;:&#8221;operations&#8221;},{&#8220;name&#8221;:&#8221;varun&#8221;,&#8221;contact_number&#8221;:&#8221;9833910512&#8243;,&#8221;address&#8221;:&#8221;mehsana&#8221;,&#8221;salary&#8221;:56000,&#8221;employee_id&#8221;:98831,&#8221;role&#8221;:&#8221;tester&#8221;},{&#8220;name&#8221;:&#8221;preeti&#8221;,&#8221;contact_number&#8221;:&#8221;9833910513&#8243;,&#8221;address&#8221;:&#8221;noida&#8221;,&#8221;salary&#8221;:87000,&#8221;employee_id&#8221;:98832,&#8221;role&#8221;:&#8221;developer&#8221;},{&#8220;name&#8221;:&#8221;madhu&#8221;,&#8221;contact_number&#8221;:&#8221;9833910525&#8243;,&#8221;address&#8221;:&#8221;bangalore&#8221;,&#8221;salary&#8221;:22000,&#8221;employee_id&#8221;:98833,&#8221;role&#8221;:&#8221;sales&#8221;}];<\/p>\n\n\n\n<ol><li>show employees in descending order &#8211; salary<\/li><li>show all employees from Mumbai<\/li><li>show all employees having salary more 50000<\/li><li>show sum of salary from emps collection<\/li><li>show all distinct address<\/li><li>show names of employees having max salary<\/li><li>show employees having 2nd highest salary<\/li><li>count employees from mumbai only<\/li><li>show all female employees <\/li><li>show all male employees <\/li><\/ol>\n\n\n\n<!-- answers \n1. db.emps.find().sort({\"salary\": -1})\n2. db.emps.find({\"address\": \"mumbai\"})\n3. db.emps.find({\"salary\": {  $gt : 50000}})\n4. db.emps.aggregate([{$group: {\n\t_id : null,\n\ttotal : {$sum : \"$salary\"}\n}}]).pretty()\n5. db.emps.distinct(\"address\")\n6. db.emps.find({salary: db.emps.distinct(\"salary\").sort().reverse()[0]}, {name: 1, _id: 0})\n7. db.emps.find({salary: db.emps.distinct(\"salary\").sort().reverse()[1]})\n8. db.emps.find({\"address\": \"mumbai\"}).count() \n9. db.emps.find({\"name\" : \/[aeiou]$\/i})\n10. db.emps.find({\"name\": \/[^aeiou]$\/i})\n\n\n-->\n","protected":false},"excerpt":{"rendered":"<p>MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. to start server (mongod is mongo deamon) to start shell Change database show current database Collections are similar to table Drop collection\/table drop database insertOne insertMany count document select all documents\/records select with projection [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1910,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[21],"tags":[],"_links":{"self":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/1001"}],"collection":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=1001"}],"version-history":[{"count":33,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/1001\/revisions"}],"predecessor-version":[{"id":2668,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/1001\/revisions\/2668"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/media\/1910"}],"wp:attachment":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=1001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=1001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}