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



okfun dạo này thấy mọi người nói suốt nên mình cũng ghé thử cho biết, chủ yếu xem giao diện ra sao thôi chứ chưa kịp khám phá kỹ. Vừa vào cái là thấy trang làm khá thoáng, không bị nhét quá nhiều thứ nên nhìn một lượt là hiểu đại khái. Mình hay bị lạc khi web sắp xếp lung tung, mà ở đây cái menu để ngay chỗ dễ thấy nên chuyển qua lại giữa các mục khá tiện, không phải kéo lên kéo xuống tìm. Mấy phần nội dung cũng tách thành từng khối rõ ràng, tiêu đề nhìn phát là biết đang nói về gì, đỡ rối mắt hẳn. Nói chung mới lướt sơ mà cảm…
xoilac mình mới ghé thử vì thấy nhiều người nhắc, ai ngờ vào cái là trang load nhanh thật, bấm qua lại mượt nên đỡ khó chịu. Mình không phải kiểu ngồi canh trận cả tối, chủ yếu lướt tin với xem có gì hay ho thôi, mà thấy họ để mấy tin bóng đá mới cập nhật khá dễ nhìn, không bị rối mắt. Giao diện nhìn đơn giản, chữ không nhồi nhét, kéo xuống là thấy nội dung chia khối rõ ràng nên tìm cái mình cần cũng nhanh. Mình có để ý phần xem trực tiếp thì ghi Full HD nghe cũng ổn, nhưng mình chưa test kỹ. Nói chung lướt vài phút là nắm được tình…
23win dạo này thấy nhiều người nhắc nên mình tò mò bấm vào xem thử thôi chứ không có đăng ký hay chơi gì. Vừa mở lên cái mình để ý ngay mấy thông tin kiểu bảo mật với link truy cập an toàn họ để khá dễ thấy, không phải lục lọi xuống dưới nên đọc lướt cũng đỡ lo. Lướt thêm chút ở phần giới thiệu thì thấy có nhắc giấy phép PAGCOR, ai hay soi mấy chi tiết này chắc nhận ra liền. Mình thích kiểu họ trình bày đơn giản, chữ nghĩa rõ ràng, không nhồi nhét quá nhiều thứ một lúc nên nhìn không bị ngợp. Mấy mục trên trang chuyển qua lại cũng mượt,…
nhà cái x88 mình thấy bạn bè nhắc hoài nên bấm vào xem thử cho biết, kiểu tò mò giao diện thôi chứ không làm gì sâu. Vừa vào là thấy họ nói khá rõ vụ nhiều khu vực bị chặn nên hay gặp lỗi load chậm, rồi có nhắc chuyện chuẩn bị link dự phòng để khỏi bị gián đoạn. Mình thích kiểu họ để thông tin này ngay phần đầu nên đọc lướt cũng nắm được, đỡ phải mò. Trang nhìn hiện đại, chữ nghĩa dễ đọc, cuộn xuống không bị rối, mấy tiêu đề to nên mắt bắt nhanh. Nói chung trải nghiệm xem thông tin ổn, chuyển mục cũng mượt. Ấn tượng nhất là mấy khối…
https://789p.biz/ hôm trước thấy mấy người nhắc hoài nên mình bấm vào coi thử cho biết, kiểu tò mò giao diện với cách họ viết thông tin thôi. Vào trang là thấy họ nhấn khá rõ chuyện link truy cập “xác thực” để tránh bị dắt qua trang giả, đọc lướt mà cũng thấy yên tâm hơn chút. Mình không đăng ký hay thử gì, chỉ ngồi kéo xuống xem bố cục. Trang làm theo kiểu chia khối nội dung riêng rẽ nên nhìn không rối, tiêu đề to rõ, chữ dễ đọc. Cuộn xuống mượt, không bị nhảy lung tung, mấy đoạn quan trọng được đặt ngay chỗ dễ thấy. Nói chung nhìn như họ cố làm cho người…