Ngân hàng câu hỏi của chương

Câu hỏi: SDN302 Chương 4 - Cơ sở dữ liệu NoSQL với MongoDB

25 câu trắc nghiệm kèm lời giải của môn Server-Side development with NodeJS, Express, and MongoDB, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/25 câuCòn 5
1What is MongoDB?4 lựa chọnDễ75% trả lời đúng
AA document database.
BA relational database.
CA key-value store.
DA columnar database.
Lời giải
MongoDB là một loại cơ sở dữ liệu tài liệu, cho phép lưu trữ và quản lý dữ liệu dưới dạng tài liệu JSON (JavaScript Object Notation). Mỗi tài liệu trong MongoDB có thể có cấu trúc khác nhau và có thể chứa các trường khác nhau. Điều này làm cho MongoDB trở thành một lựa chọn tuyệt vời cho các ứng dụng cần lưu trữ và quản lý dữ liệu phức tạp. Ngoài ra, MongoDB cũng hỗ trợ các tính năng như phân tán dữ liệu, sao lưu và khôi phục dữ liệu, giúp đảm bảo tính ổn định và an toàn của dữ liệu.
Mở trang câu hỏi này →
2What is the purpose of using regex in MongoDB queries?4 lựa chọnDễ100% trả lời đúng
ATo sort the documents.
BTo filter documents based on pattern matching.
CTo update multiple documents.
DTo delete a specific document.
Lời giải
Regex (Regular Expression) trong MongoDB được sử dụng để lọc các tài liệu dựa trên việc khớp mẫu. Điều này cho phép bạn tìm kiếm các tài liệu dựa trên các mẫu phức tạp, chẳng hạn như số điện thoại, địa chỉ email hoặc các chuỗi ký tự cụ thể. Ví dụ, bạn có thể sử dụng regex để tìm kiếm các tài liệu có số điện thoại bắt đầu bằng 0x hoặc các tài liệu có địa chỉ email kết thúc bằng @gmail.com. Regex cũng cho phép bạn tìm kiếm các tài liệu dựa trên các chuỗi ký tự không có trong một số trường cụ thể. Điều này giúp bạn có thể tìm kiếm và lọc các tài liệu một cách chính xác và hiệu quả hơn.
Mở trang câu hỏi này →
Aclient.connect() is responsible for connecting to the MongoDB server.
Bcol.insertOne({ name: "Nguyen Van A", age: 20 }) is responsible for inserting a document.
Ccol.find({}).toArray() is responsible for querying documents.
Dclient.close() is responsible for deleting a document.
Lời giải

Để kết nối đến cơ sở dữ liệu MongoDB và thực hiện các hoạt động CRUD (Tạo, Đọc, Sửa, Xóa) sử dụng Node MongoDB Driver, bạn cần xác định các phần chịu trách nhiệm kết nối, chèn và truy vấn tài liệu. client.connect() là phương thức chịu trách nhiệm kết nối đến máy chủ MongoDB.

Lời giải
col.insertOne({
  name: "Nguyen Van A", age: 20
}

) là phương thức chịu trách nhiệm chèn một tài liệu mới vào cơ sở dữ liệu.

Lời giải
col.find({
}

).toArray() là phương thức chịu trách nhiệm truy vấn các tài liệu trong cơ sở dữ liệu. client.close() là phương thức chịu trách nhiệm đóng kết nối đến cơ sở dữ liệu, nhưng nó không phải là phương thức xóa tài liệu. Phương thức xóa tài liệu thường được thực hiện bằng cách sử dụng col.deleteOne() hoặc col.deleteMany().

Mở trang câu hỏi này →
ARegex can be used in the $regex operator to match string patterns.
BRegex is used to perform mathematical operations.
CRegex allows for case-insensitive searches by using the 'i' option.
DRegex can be used to insert documents into a collection.
Lời giải
Regex trong MongoDB được sử dụng để tìm kiếm và xử lý chuỗi dữ liệu. Theo đó, câu trả lời đúng là: Regex có thể được sử dụng trong toán tử $regex để khớp các mẫu chuỗi. Ngoài ra, Regex cũng cho phép thực hiện tìm kiếm không phân biệt chữ hoa chữ thường bằng cách sử dụng tùy chọn 'i'. Tuy nhiên, Regex không được sử dụng để thực hiện các phép toán toán học và cũng không được sử dụng để chèn dữ liệu vào một tập hợp. Do đó, hai câu trả lời đúng là: Regex có thể được sử dụng trong toán tử $regex để khớp các mẫu chuỗi và Regex cho phép thực hiện tìm kiếm không phân biệt chữ hoa chữ thường bằng cách sử dụng tùy chọn 'i'.
Mở trang câu hỏi này →
5What is the default port for MongoDB?4 lựa chọnDễ91% trả lời đúng
A3306
B5432
C27017
D1521
Lời giải
Câu hỏi này yêu cầu bạn chọn cổng mặc định cho MongoDB. MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL phổ biến. Để kết nối với MongoDB, bạn cần biết cổng mặc định mà nó sử dụng. Trong các lựa chọn, cổng 27017 là cổng mặc định của MongoDB. Các cổng khác như 3306, 5432 và 1521 thường được sử dụng bởi các hệ quản trị cơ sở dữ liệu khác như MySQL, PostgreSQL và Oracle.
Mở trang câu hỏi này →
6What is a set of documents?4 lựa chọnDễ100% trả lời đúng
AA collection
BA database
CA table
DA document
Lời giải
Một tập hợp tài liệu là một nhóm các tài liệu được tổ chức và quản lý một cách hệ thống. Nó thường được sử dụng trong các hệ thống quản lý tài liệu điện tử (EDMS) hoặc các ứng dụng quản lý nội dung (CMS). Một tập hợp tài liệu có thể chứa các loại tài liệu khác nhau như văn bản, hình ảnh, video, v.v. Nó giúp người dùng dễ dàng tìm kiếm, quản lý và truy cập các tài liệu một cách nhanh chóng và hiệu quả. Trong nhiều trường hợp, một tập hợp tài liệu được coi là một đơn vị quản lý và tổ chức các tài liệu, giúp người dùng dễ dàng quản lý và theo dõi các tài liệu.
Mở trang câu hỏi này →
7Which of the following is wrong statement?4 lựa chọnTrung bình63% trả lời đúng
ACross-origin resource sharing (CORS) is a browser mechanism which enables controlled access to resources located outside of a given domain
BThe CORS mechanism supports secure cross-origin requests and data transfers between browsers and servers
CFor security reasons, browsers don't restrict cross-origin HTTP requests initiated from scripts
DCORS allows web applications to make requests to a domain different from the one that served the web application.
Lời giải
Câu hỏi này yêu cầu bạn xác định phát biểu sai trong các lựa chọn. Các lựa chọn bao gồm: - Cross-origin resource sharing (CORS) là một cơ chế của trình duyệt cho phép truy cập kiểm soát các tài nguyên nằm ngoài một miền cho trước. - Cơ chế CORS hỗ trợ các yêu cầu và chuyển đổi dữ liệu an toàn giữa trình duyệt và máy chủ. - Do lý do bảo mật, trình duyệt không hạn chế các yêu cầu HTTP xuyên miền được khởi tạo từ các script. - CORS cho phép các ứng dụng web thực hiện yêu cầu đến miền khác với miền đã phục vụ ứng dụng web. Phát biểu sai là: - Do lý do bảo mật, trình duyệt không hạn chế các yêu cầu HTTP xuyên miền được khởi tạo từ các script. Trên thực tế, trình duyệt thực sự hạn chế các yêu cầu HTTP xuyên miền được khởi tạo từ các script để ngăn chặn các cuộc tấn công như XSS.
Mở trang câu hỏi này →
AA new database is created automatically when you insert data into a collection in that database.
BYou must manually create a database before creating a collection.
CA new collection is created using the createCollection() method.
DA new collection is created using the addCollection() method.
Lời giải
Để tạo một cơ sở dữ liệu mới và một bộ sưu tập trong MongoDB, bạn cần hiểu các bước cơ bản. Trước hết, bạn cần tạo một cơ sở dữ liệu mới. Trong MongoDB, bạn không cần tạo cơ sở dữ liệu trước khi tạo bộ sưu tập. Thay vào đó, bạn có thể tạo một bộ sưu tập mới mà không cần tạo cơ sở dữ liệu trước đó. Để tạo một bộ sưu tập mới, bạn có thể sử dụng phương thức createCollection(). Phương thức này cho phép bạn tạo một bộ sưu tập mới với các tùy chọn tùy chỉnh. Ví dụ, bạn có thể chỉ định tên bộ sưu tập, chế độ lưu trữ và các tùy chọn khác. Ngoài ra, bạn cũng có thể tạo một bộ sưu tập mới bằng cách sử dụng phương thức insert() để chèn dữ liệu vào một bộ sưu tập chưa tồn tại.
Mở trang câu hỏi này →
AUse insertOne to create new tasks.
BUse find to retrieve tasks.
CUse updateMany to delete tasks.
DUse deleteOne to delete tasks.
Lời giải
Để phân tích kịch bản và xác định các hoạt động CRUD MongoDB có lợi nhất, chúng ta cần xem xét các yêu cầu của ứng dụng quản lý nhiệm vụ. Ứng dụng cần xử lý các hoạt động tạo, đọc, cập nhật và xóa nhiệm vụ bởi người dùng. Người dùng có thể cập nhật trạng thái của một nhiệm vụ và xóa nhiệm vụ không còn cần thiết. Trong trường hợp này, chúng ta có thể sử dụng các hoạt động CRUD sau: - Tạo mới nhiệm vụ: Sử dụng insertOne để tạo mới nhiệm vụ mới. - Đọc nhiệm vụ: Sử dụng find để đọc nhiệm vụ. - Xóa nhiệm vụ: Sử dụng deleteOne để xóa nhiệm vụ không còn cần thiết. Do đó, các hoạt động CRUD MongoDB có lợi nhất cho ứng dụng quản lý nhiệm vụ là: - Sử dụng insertOne để tạo mới nhiệm vụ. - Sử dụng find để đọc nhiệm vụ. - Sử dụng deleteOne để xóa nhiệm vụ.
Mở trang câu hỏi này →
10Which statements correctly describe the characteristics of NoSQL databases?4 lựa chọnDễ100% trả lời đúng
ANoSQL databases are horizontally scalable.
BNoSQL databases are primarily used for structured data.
CNoSQL databases do not use relational data modeling techniques.
DNoSQL databases cannot handle large volumes of data.
Lời giải
Câu hỏi này yêu cầu bạn xác định các đặc điểm chính của cơ sở dữ liệu NoSQL. Cơ sở dữ liệu NoSQL là một loại cơ sở dữ liệu không dựa trên quan hệ, được thiết kế để xử lý dữ liệu không có cấu trúc hoặc nửa cấu trúc. Một trong những đặc điểm chính của cơ sở dữ liệu NoSQL là khả năng mở rộng ngang dọc, điều này có nghĩa là chúng có thể dễ dàng mở rộng để xử lý lượng dữ liệu lớn hơn mà không cần phải thay đổi cấu trúc cơ sở dữ liệu. Ngoài ra, cơ sở dữ liệu NoSQL không sử dụng kỹ thuật mô hình hóa dữ liệu dựa trên quan hệ như cơ sở dữ liệu quan hệ truyền thống. Điều này cho phép chúng xử lý dữ liệu phức tạp và linh hoạt hơn. Vì vậy, hai câu trả lời đúng là: 'Cơ sở dữ liệu NoSQL có khả năng mở rộng ngang dọc' và 'Cơ sở dữ liệu NoSQL không sử dụng kỹ thuật mô hình hóa dữ liệu dựa trên quan hệ'.
Mở trang câu hỏi này →
11What is the MongoDB equivalent of a "table"?4 lựa chọnTrung bình67% trả lời đúng
ADocument
BField
CCollection
DSchema
Lời giải
Trong MongoDB, một 'collection' tương đương với một 'bảng' trong cơ sở dữ liệu quan hệ. Một collection là một nhóm các tài liệu (document) được lưu trữ cùng nhau trong một cơ sở dữ liệu MongoDB. Mỗi tài liệu trong một collection có thể có cấu trúc khác nhau, nhưng chúng đều có một số trường (field) chung. Ví dụ, nếu bạn có một collection tên là 'khach_hang', mỗi tài liệu trong collection này có thể có các trường như 'ten', 'tuoi', 'dia_chi', v.v. Collection là một khái niệm quan trọng trong MongoDB vì nó cho phép bạn quản lý và truy vấn dữ liệu một cách hiệu quả.
Mở trang câu hỏi này →
12What are not limitations of Indexes in MongoDB?4 lựa chọnTrung bình60% trả lời đúng
AIndexes can take up a significant amount of disk space, especially for large collections or indexes with many fields.
BIndexes can slow down write operations, as MongoDB needs to update the index whenever a document is inserted, updated, or deleted.
CIndexes can become fragmented over time, which can reduce their effectiveness. MongoDB provides tools to analyze and optimize indexes to address this issue.
DIndexes can query on large collections by reducing the number of documents that need to be examined
Lời giải
Các giới hạn của Indexes trong MongoDB bao gồm việc chiếm một lượng không gian đĩa đáng kể, đặc biệt là đối với các tập hợp lớn hoặc các chỉ số có nhiều trường. Các chỉ số có thể làm chậm các hoạt động ghi, vì MongoDB cần cập nhật chỉ số mỗi khi một bản ghi được chèn, cập nhật hoặc xóa. Các chỉ số có thể bị phân mảnh theo thời gian, làm giảm hiệu quả của chúng. Để giải quyết vấn đề này, MongoDB cung cấp các công cụ để phân tích và tối ưu hóa các chỉ số. Tuy nhiên, một số lợi ích của Indexes bao gồm việc giảm số lượng bản ghi cần được kiểm tra khi thực hiện truy vấn trên các tập hợp lớn.
Mở trang câu hỏi này →
Amongodb://localhost:27017/mydatabase is a standard connection string format. mongodb+srv://cluster0.mongodb.net/mydatabase is an SRV connection format.
Bmongodb://localhost:27017/mydatabase is an SRV connection format. mongodb+srv://cluster0.mongodb.net/mydatabase is a standard connection string format.
CBoth connection strings are SRV formats.
DBoth connection strings are standard formats.
Lời giải
Các định dạng chuỗi kết nối được phân tích dưới đây để xác định định dạng SRV và chuẩn của MongoDB. Chuỗi kết nối mongodb://localhost:27017/mydatabase sử dụng định dạng chuẩn vì nó sử dụng giao thức TCP/IP để kết nối đến máy chủ MongoDB. Trong khi đó, chuỗi kết nối mongodb+srv://cluster0.mongodb.net/mydatabase sử dụng định dạng SRV vì nó sử dụng giao thức SRV (Service Location Protocol) để tìm kiếm máy chủ MongoDB. Giao thức SRV cho phép tìm kiếm máy chủ MongoDB dựa trên tên miền và giúp dễ dàng cấu hình và quản lý các máy chủ MongoDB.
Mở trang câu hỏi này →
AImport the MongoClient class from the mongodb module with the require() statement.
BCreate an instance of the MongoDatabase class.
CCall the connect() method on the MongoClient instance by passing the MongoDB server URL.
DUse the import statement to import MongoClient.
Lời giải
Để thiết lập một kết nối đến máy chủ MongoDB bằng cách sử dụng lớp MongoClient, bạn cần thực hiện các bước sau. Trước hết, bạn cần nhập lớp MongoClient từ mô-đun mongodb bằng cách sử dụng hàm require(). Sau đó, bạn cần tạo một đối tượng của lớp MongoClient bằng cách gọi hàm MongoClient(). Cuối cùng, bạn cần gọi phương thức connect() trên đối tượng MongoClient đã tạo và truyền vào địa chỉ URL của máy chủ MongoDB. Điều này sẽ giúp bạn thiết lập một kết nối đến máy chủ MongoDB.
Mở trang câu hỏi này →
AThe MongoClient class represents a database connection.
BThe MongoClient class represents a collection.
CA connection string must be passed to the MongoClient constructor.
DA connection string is not required to connect to MongoDB.
Lời giải
MongoClient class trong MongoDB là một lớp đại diện cho kết nối cơ sở dữ liệu. Để kết nối với MongoDB, bạn cần tạo một đối tượng MongoClient và cung cấp chuỗi kết nối (connection string) cho nó. Chuỗi kết nối chứa thông tin về địa chỉ máy chủ, tên cơ sở dữ liệu và các thông tin khác cần thiết để kết nối.
Mở trang câu hỏi này →
16Which function is used to import the MongoDB driver in a Node.js application?4 lựa chọnDễ100% trả lời đúng
Aimport mongodb from 'mongodb';
Brequire('mongodb');
Cinclude('mongodb');
Duse('mongodb');
Lời giải
Để sử dụng MongoDB trong ứng dụng Node.js, chúng ta cần nhập thư viện MongoDB. Trong đó, hàm được sử dụng để nhập thư viện MongoDB là require(). Hàm này cho phép chúng ta nhập các module trong Node.js. Ví dụ, để nhập thư viện MongoDB, chúng ta sử dụng require('mongodb');. Hàm này sẽ trả về một đối tượng có thể được sử dụng để tương tác với MongoDB. Ngoài ra, chúng ta cũng có thể sử dụng import để nhập thư viện MongoDB, nhưng require() vẫn là lựa chọn phổ biến hơn.
Mở trang câu hỏi này →
17Which aggregation pipeline stage is used to group documents?4 lựa chọncó codeDễ100% trả lời đúng
Đề bài
db.orders.aggregate([ {
  $group: {
    _id: "$status", total: {
      $sum: "$amount"
    }
  }
}

]);

A$match
B$project
C$group
D$sort
Lời giải
Trình tự pipeline được sử dụng để nhóm tài liệu là $group. Trong ví dụ này, trình tự $group được sử dụng để nhóm các tài liệu theo trạng thái và tính toán tổng tiền cho mỗi trạng thái. Điều này được thực hiện bằng cách sử dụng biểu thức $sum để tính toán tổng tiền và biểu thức _id để xác định trường nhóm.
Mở trang câu hỏi này →
AEmbedding an array of comments within a "dishes" document
BStoring the comments in a separate "comments" collection and use the post ID to link them together
CStoring the comments in a separate "comments" collection, "dishes" collection
DNone of the above
Lời giải
Để tránh đa cấp các tài liệu được tích hợp, phương pháp nào nên làm khi lưu trữ mảng bình luận? Khi lưu trữ một mảng bình luận, chúng ta cần cân nhắc giữa việc tích hợp mảng bình luận vào tài liệu "dishes" hoặc lưu trữ chúng trong một tập hợp "comments" riêng biệt và liên kết chúng với nhau thông qua ID bài đăng. Phương pháp tích hợp mảng bình luận vào tài liệu "dishes" có thể dẫn đến đa cấp các tài liệu được tích hợp, khiến việc truy cập và quản lý dữ liệu trở nên phức tạp hơn. Ngược lại, phương pháp lưu trữ bình luận trong một tập hợp "comments" riêng biệt và liên kết chúng với nhau thông qua ID bài đăng cho phép chúng ta quản lý dữ liệu một cách hiệu quả hơn và tránh đa cấp các tài liệu được tích hợp.
Mở trang câu hỏi này →
Đề bài
class and connecting to the server. const {
  MongoClient
}

= require('mongodb'); const url = 'mongodb://localhost:27017'; const dbName = 'mydatabase'; const client =

Đề bài
new MongoClient(url);
async function run() {
  try {
    await client.connect();
    console.log("Connected correctly to server");
    const db = client.db(dbName);
  }
  finally {
    await client.close();
  }
}

run().catch(console.dir);

Aconst { MongoClient } = require('mongodb'); is responsible for importing the MongoClient class.
Bconst url = 'mongodb://localhost:27017'; is responsible for setting the database name.
Cawait client.connect(); is responsible for connecting to the MongoDB server.
Dconst db = client.db(dbName); is responsible for closing the connection to the MongoDB server.
Lời giải

Để kết nối đến một server MongoDB, chúng ta cần sử dụng MongoClient class. Trong đoạn mã này, phần import MongoClient class được thực hiện bởi câu lệnh const { MongoClient } = require('mongodb');. Sau đó, chúng ta cần cung cấp thông tin kết nối đến server MongoDB, bao gồm địa chỉ và tên cơ sở dữ liệu. Câu lệnh const url = 'mongodb://localhost:27017'; được sử dụng để thiết lập địa chỉ server MongoDB, trong khi câu lệnh const dbName = 'mydatabase'; được sử dụng để thiết lập tên cơ sở dữ liệu. Để kết nối đến server MongoDB, chúng ta sử dụng phương thức connect() của MongoClient, được thực hiện bởi câu lệnh await client.connect();. Cuối cùng, để đóng kết nối đến server MongoDB, chúng ta sử dụng phương thức close() của MongoClient, được thực hiện bởi câu lệnh await client.close();.

Mở trang câu hỏi này →
ACreating separate documents for related data
BNormalize your data
CUse data types efficiently
DStore large binary data in documents
Lời giải
Để tránh vượt quá giới hạn 16 MB của MongoDB, bạn cần tối ưu hóa mô hình dữ liệu của mình. Một trong những cách hiệu quả là tạo ra các tài liệu riêng biệt cho dữ liệu liên quan. Điều này giúp giảm thiểu kích thước của mỗi tài liệu và tránh tình trạng vượt quá giới hạn. Ngoài ra, bạn cũng có thể áp dụng nguyên tắc phân chia dữ liệu (Normalization) để tổ chức dữ liệu một cách hợp lý và hiệu quả. Cuối cùng, việc sử dụng các loại dữ liệu một cách hiệu quả cũng là một yếu tố quan trọng trong việc tối ưu hóa mô hình dữ liệu của bạn.
Mở trang câu hỏi này →