top of page

MongoDB Assignment Help | Practice Set 1



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

10 Comments


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…

Like

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…

Like

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,…

Like

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…

Like

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…

Like

REALCODE4YOU

Realcode4you is the one of the best website where you can get all computer science and mathematics related help, we are offering python project help, java project help, Machine learning project help, and other programming language help i.e., C, C++, Data Structure, PHP, ReactJs, NodeJs, React Native and also providing all databases related help.

Hire Us to get Instant help from realcode4you expert with an affordable price.

USEFUL LINKS

Discount

ADDRESS

Noida, Sector 63, India 201301

Follows Us!

  • Facebook
  • Twitter
  • Instagram
  • LinkedIn

OUR CLIENTS BELONGS TO

  • india
  • australia
  • canada
  • hong-kong
  • ireland
  • jordan
  • malaysia
  • new-zealand
  • oman
  • qatar
  • saudi-arabia
  • singapore
  • south-africa
  • uae
  • uk
  • usa

© 2023 IT Services provided by Realcode4you.com

bottom of page