MongoDB Assignment Help | Practice Set 1
- realcode4you
- Jul 15, 2021
- 2 min read

In this we will provide the some MongoDB queries and their solution, you need to practice it itself and comment in below section to send different solution from own side.
Check or download Dataset(Assgcars.json) from here.

Here the queries solution using nodejs:
First need to connect mongodb using below MongoClient
const MongoClient = require("mongodb").MongoClient;
//update the connection string.
const url = "mongodb://localhost/mongo-task";
//update database name
const dbName = "mongo-task";
//update collection name (i.e targetted collection)
const collectionName = "cars";
/*Query results are logged on the terminal.*/Query 1(e)
//Query 1
numberOfColoursByManufacturer = async () => {
const client = await MongoClient.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).catch((err) => console.log("Could not connect to MongoDB", err));
try {
const db = client.db(dbName);
const collection = db.collection(collectionName);
let res = await collection
.aggregate([
{
$unwind: "$Colour",
},
{
$group: {
_id: "$Manufacturer",
Colours: { $addToSet: "$Colour" },
},
},
{
$project: {
_id: 0,
Manufacturer: "$_id",
CountOfColours: { $size: "$Colours" },
},
},
])
.toArray();
console.log(res);
} catch (err) {
console.log("Error occured in First Query");
} finally {
client.close();
}
};Query 2(f)
//Query 2
extrasByManufacturer = async () => {
const client = await MongoClient.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).catch((err) => console.log("Could not connect to MongoDB", err));
try {
const db = client.db(dbName);
const collection = db.collection(collectionName);
let res = await collection
.aggregate([
{
$unwind: "$Extras",
},
{
$group: {
_id: "$Manufacturer",
Extras: { $addToSet: "$Extras" },
},
},
{
$project: {
_id: 0,
Manufacturer: "$_id",
Extras: "$Extras",
},
},
])
.toArray();
console.log(res);
} catch (err) {
console.log("Error in Sec Query", err);
} finally {
client.close();
}
};
Query 3(g)
//Query 3
countNumberOfExtras = async () => {
const client = await MongoClient.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).catch((err) => console.log("Could not connect to MongoDB", err));
try {
const db = client.db(dbName);
const collection = db.collection(collectionName);
let res = await collection
.aggregate([
{
$group: {
_id: "$Model",
Extras: { $push: "$Extras" },
Avg: { $avg: { $size: "$Extras" } },
},
},
{
$project: {
_id: 0,
Model: "$_id",
CountOfExtras: {
$size: {
$reduce: {
input: "$Extras",
initialValue: [],
in: { $setUnion: ["$$value", "$$this"] },
},
},
},
Avg: "$Avg",
},
},
])
.toArray();
console.log(res);
} catch (err) {
console.log("Error in Third Query", err);
} finally {
client.close();
}
};Query 4(h)
//Query 4
lowestValPerManufacturer = async () => {
const client = await MongoClient.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).catch((err) => console.log("Could not connect to MongoDB", err));
try {
const db = client.db(dbName);
const collection = db.collection(collectionName);
const res = await collection
.aggregate([
{
$group: {
_id: "$Manufacturer",
price: {
$min: {
$add: ["$Price", "$Milage"],
},
},
},
},
{
$project: {
_id: 0,
Manufacturer: "$_id",
LowestPrice: "$price",
},
},
])
.toArray();
console.log(res);
} catch (err) {
console.log("Error in Fourth Query", err);
} finally {
client.close();
}
};
// To execute one query comment the others.
async function run() {
await numberOfColoursByManufacturer();
//await extrasByManufacturer();
//await countNumberOfExtras();
//await lowestValPerManufacturer();
}
run();



iwinclub mình mới ghé thử vì thấy bạn bè nhắc hoài, kiểu vào xem cho biết thôi chứ không định ngồi nghiên cứu gì sâu. Lướt một vòng thấy trang trình bày khá dễ chịu, chữ nghĩa chia khối rõ nên đọc không bị ngợp, kéo xuống vẫn biết mình đang ở đoạn nào. Mình để ý họ có nhắc phần giấy phép PAGCOR khá nổi bật, nên người mới nhìn cái là hiểu họ muốn nói gì về “cơ sở” luôn, khỏi phải mò. Mấy mục trên đầu trang cũng sắp xếp gọn, bấm qua lại không bị lạc, nhìn chung giao diện làm kiểu sạch và sáng sủa. Nói chung mình ấn tượng nhất là cách họ chia…
Sunwin 957 mình thấy mọi người nhắc nên cũng bấm vào nghía thử cho biết. Mình không có ngồi đọc hết nội dung đâu, chủ yếu xem giao diện và cách họ sắp xếp thông tin thôi. Cảm giác đầu tiên là trang nhìn gọn gàng, kiểu “dễ thở”, không bị rối mắt. Mấy tiêu đề như “Cam kết đổi mới và bền vững” đặt nổi bật nên lướt qua là hiểu họ đang muốn nhấn vào hướng đi nào. Phần giới thiệu về Études cũng viết vừa đủ, nói về chuyện kết hợp sáng tạo với chức năng trong kiến trúc nên đọc nhanh vẫn nắm được ý. Mình thích cách họ chia nội dung theo từng khối rõ…
ad88 mình mới ghé thử vì thấy bạn bè nhắc hoài, chủ yếu tò mò xem giao diện với nội dung họ viết ra sao. Vào trang cái thấy bố cục khá thoáng, không bị rối mắt, kéo xuống đọc cũng nhẹ nhàng vì chữ dễ nhìn. Mình lướt mấy đoạn giới thiệu thì thấy họ nhấn nhiều vào chuyện vận hành theo quy chuẩn quốc tế với hệ thống giám sát tự động 24 7, đọc kiểu “à, ít nhất họ nói thẳng trọng tâm” chứ không vòng vo. Nội dung chia thành từng khối ngắn nên bắt ý nhanh, không phải mò lâu. Mình không ngồi đọc hết đâu, nhưng cách họ đặt tiêu đề nổi bật và…
O8 mình mới ghé thử vì thấy bạn bè nhắc hoài, chủ yếu vào xem trang chủ trông ra sao chứ chưa kịp nghía gì sâu. Cảm giác đầu tiên là giao diện nhìn khá thoáng, chữ dễ đọc, kéo xuống không bị rối mắt kiểu nhồi quá nhiều thứ một lúc. Mình để ý họ có nhắc vụ mã hóa SSL 256-bit ngay trên trang, nhìn như một khung thông tin riêng nên cũng yên tâm hơn chút khi đăng nhập lướt qua. Với lại phần cập nhật link vào mới nhất được đặt khá dễ thấy, không phải mò lâu. Nói chung trải nghiệm lướt nhanh ổn, mấy mục giới thiệu cập nhật nằm gọn gàng ở đầu…
https://o8.style/ mình lướt thử vì thấy bạn bè nhắc, kiểu vào xem giao diện ra sao thôi. Cảm giác đầu tiên là trang phản hồi nhanh, chuyển mục không bị đứng hay giật, nhìn chung khá “mượt” đúng kiểu họ nói là có tối ưu hiệu suất. Mình cũng thích cách họ trình bày nội dung theo từng khối rõ ràng, tiêu đề tách bạch nên đọc lướt vẫn nắm được ý, không phải kéo qua kéo lại để tìm. Có đoạn họ nhắc chuyện dạo này hay có web giả mạo trên công cụ tìm kiếm, thấy cảnh báo đặt ngay trong nội dung nên cũng yên tâm hơn khi xem thông tin. Nói chung trải nghiệm xem trên…