Assignment No: 01
Roll No:3040
Title: Create a database with suitable example using MongoDB and implement
CURD operations, Query Operations and Cursor operations on it.
**********************************************************************
1. CURD Operations:
1)Display list of existing databases
test> show dbs;
Student_Records 72.00 KiB
admin 40.00 KiB
apnacollege 72.00 KiB
config 36.00 KiB
local 72.00 KiB
2) Switch database
test> use Research;
switched to db Research
3) Create Collection
Research> db.createCollection("Researcher");
{ ok: 1 }
4) Display list of existing collections
Research> show collections;
Researcher
5) Insert documents into collection
Research>
db.Researcher.insert({R_Id :101,R_Name :"Jay",R_Domain :"Computer
science",R_Centre :"Pune",R_Salary :45000,No_Research :5});
DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany, or
bulkWrite.
{
acknowledged: true,
insertedIds: { '0': ObjectId("64d643a1f34cf634cc3eab07") }
}}
6) Retrieve and Display Documents
Research> db.Researcher.find();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
}
]
Research> db.Researcher.find().pretty();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
}
]
7) Bulk insert
Research>
db.Researcher.insert([{R_Id :105,R_Name :"Rohan",R_Domain :"Electronics",R_Centr
e :"Mumbai",R_Salary :50000,No_Research :2},
{R_Id :103,R_Name :"Vishal",R_Domain :"Data
Science",R_Centre:"Delhi",R_Salary :65000,No_Research :6},
{R_Id :109,R_Name :"Tejas",R_Domain :"Biotechnology",R_Centre:"Pune",R_Salary:
100000,No_Research :5}]);
{
acknowledged: true,
insertedIds: {
'0': ObjectId("64d64540f34cf634cc3eab08"),
'1': ObjectId("64d64540f34cf634cc3eab09"),
'2': ObjectId("64d64540f34cf634cc3eab0a")
}
}
Research> db.Researcher.find().pretty();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab08"),
R_Id: 105,
R_Name: 'Rohan',
R_Domain: 'Electronics',
R_Centre: 'Mumbai',
R_Salary: 50000,
No_Research: 2
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 109,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
8) Delete particular document
Research> db.Researcher.remove({R_Id :105});
DeprecationWarning: Collection.remove() is deprecated. Use deleteOne,
deleteMany, findOneAndDelete, or bulkWrite.
{ acknowledged: true, deletedCount: 1 }
9) Update particular document
Research> db.Researcher.update({R_Id :109},{$set:{R_Id :110}});
DeprecationWarning: Collection.update() is deprecated. Use updateOne, updateMany,
or bulkWrite.
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Research> db.Researcher.find().pretty();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
2. Query Operations:
1) Display documents with value of an attribute between given range
Research> db.Researcher.find({R_Salary :{$gte:45000,$lte:100000}});
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
2) Display documents with attribute value greater than given value
Research> db.Researcher.find({R_Salary :{$gte:65000}});
[
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
3) Count operation with condition
Research> db.Researcher.find({R_Salary :{$gte:65000}}).count();
2
Count operation Without condition
Research> db.Researcher.find().count();
3
4) Display value of only specific attribute
Research> db.Researcher.find({R_Salary :100000});
[
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
5) Display all documents without _id
Research> db.Researcher.find({},{_id :false,R_Id :0});
[
{
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
6) Display documents with name starting/ending with given letter
a) Display document with name starting with given letter
Research> db.Researcher.find({R_Centre :/^P/});
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
b) Display document with name ending with given letter
Research> db.Researcher.find({R_Centre:{$regex:"e$"}}).pretty();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
7) Display distinct values on any attribute
Research> db.Researcher.distinct("No_Research");
[ 5, 6 ]
8) Display only first document having given value of an attribute
Research> db.Researcher.findOne();
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
}
9) Decrement value of an attribute by given value (also include condition)
a) Increment
Research> db.Researcher.update({R_Id:110},{$inc:{R_Id :1}});
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Research> db.Researcher.find();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 111,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
B)Decrement Operation
Research> db.Researcher.update({ R_Id: 111 }, { $inc: { R_Id: -1 } });
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Research> db.Researcher.find();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
10) AND operation
Research> db.Researcher.find({$and: [{R_Domain :"Biotechnology"},
{No_Research :5}]}).pretty();
[
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
11) OR operation
Research> db.Researcher.find({$or: [{R_Domain :"Biotechnology"},
{No_Research :6}]}).pretty();
[
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
12) NOT operation
Research> db.Researcher.find({R_Salary: {$not: {$gt: 65000}}}).pretty();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
}
]
3. Cursor Operations:
1) Limit
Research> db.Researcher.find().limit(2);
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
}
]
2) Skip
Research> db.Researcher.find().skip(2);
[
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
3) Sort
a) Ascending Order
Research> db.Researcher.find().sort({"R_Salary" :1});
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
}
]
b) Descending Order
Research> db.Researcher.find().sort({"R_Salary" :-1});
[
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: 100000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
}
]
4) Update (upsert & multitrue)
a) Upsert
Research> db.Researcher.update({R_Name:"Tejas"}, {$set: {R_Salary: "15000"}},
{upsert:true});
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Research> db.Researcher.find();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: '15000',
No_Research: 5
}
]
b) Multitrue
Research> db.Researcher.update({ R_Name: "Tejas" }, { $set: { R_Salary: "50000" } },
{ multi: true });
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Research> db.Researcher.find();
[
{
_id: ObjectId("64d643a1f34cf634cc3eab07"),
R_Id: 101,
R_Name: 'Jay',
R_Domain: 'Computer science',
R_Centre: 'Pune',
R_Salary: 45000,
No_Research: 5
},
{
_id: ObjectId("64d64540f34cf634cc3eab09"),
R_Id: 103,
R_Name: 'Vishal',
R_Domain: 'Data Science',
R_Centre: 'Delhi',
R_Salary: 65000,
No_Research: 6
},
{
_id: ObjectId("64d64540f34cf634cc3eab0a"),
R_Id: 110,
R_Name: 'Tejas',
R_Domain: 'Biotechnology',
R_Centre: 'Pune',
R_Salary: '50000',
No_Research: 5
}
]
5) Save