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();



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…
Link vào 23WIN là mình nhấn thử cho biết vì thấy bạn bè nói qua, kiểu vào xem giao diện ra sao thôi. Vừa mở lên là thấy trang sắp xếp khá “thoáng”, các khối nội dung tách bạch nên nhìn phát hiểu ngay chỗ nào là chỗ nào, không bị dồn chữ hay rối mắt. Mình cũng để ý cái menu điều hướng làm khá dễ chịu, bấm qua lại mấy mục mà không phải kéo lên kéo xuống tìm lại. Mấy bảng thông tin trình bày theo cột gọn gàng nên đọc lướt vẫn nắm được ý, không bị loạn như vài trang mình từng vào. Nói chung cảm giác dùng nhẹ nhàng, nhìn một vòng là quen,…
Có khá nhiều nền tảng giải trí hiện nay nhưng không phải nơi nào cũng có cách tổ chức nội dung dễ nhìn. Sau khi đọc bài viết về Luck8 Việt Nam, mình thấy điểm nổi bật là giao diện gọn gàng, các chuyên mục hiển thị rõ ràng và tốc độ truy cập được đánh giá khá ổn định. Đây là những yếu tố giúp trải nghiệm ban đầu trở nên thoải mái và dễ tiếp cận hơn.