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

Câu hỏi: SDN302 Chương 5 - Mongoose ODM và Population

34 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. Trang 2/2 — câu 21–34.

Danh sách câu hỏi

34/34 câuHết danh sách
21What is the purpose of the populate() method in Mongoose?4 lựa chọnDễ100% trả lời đúng
ATo fetch referenced documents
BTo delete documents
CTo update schema
DTo create new collections
Lời giải
Mục đích của phương thức populate() trong Mongoose là để tải về các tài liệu tham chiếu. Khi sử dụng phương thức này, bạn có thể tải về các tài liệu liên quan đến một tài liệu cụ thể. Ví dụ, nếu bạn có một tài liệu người dùng và một tài liệu liên quan đến địa chỉ của người dùng, bạn có thể sử dụng phương thức populate() để tải về cả hai tài liệu cùng một lúc. Điều này giúp bạn có thể truy cập và sử dụng dữ liệu liên quan một cách dễ dàng hơn. Phương thức populate() cũng giúp bạn có thể xây dựng các mối quan hệ giữa các tài liệu trong cơ sở dữ liệu, từ đó giúp bạn có thể quản lý dữ liệu một cách hiệu quả hơn.
Mở trang câu hỏi này →
22What is population in Mongoose?4 lựa chọnDễ100% trả lời đúng
AThe process of updating documents in a collection.
BThe process of embedding documents within other documents.
CThe process of automatically replacing the specified paths in the document with documents from other collections.
DThe process of validating documents before saving.
Lời giải
Trong Mongoose, population là một tính năng quan trọng giúp bạn liên kết các tài liệu (documents) trong một bộ sưu tập (collection) với các tài liệu khác trong các bộ sưu tập khác. Khi bạn thực hiện population, Mongoose sẽ tự động thay thế các đường dẫn (paths) trong tài liệu hiện tại bằng các tài liệu từ các bộ sưu tập khác. Điều này giúp bạn có thể truy cập và sử dụng dữ liệu từ các bộ sưu tập khác một cách dễ dàng và hiệu quả. Ví dụ, nếu bạn có một tài liệu đại diện cho một người và bạn muốn lấy thông tin về các bài viết mà người đó đã viết, bạn có thể sử dụng population để lấy thông tin về các bài viết đó từ bộ sưu tập bài viết.
Mở trang câu hỏi này →
23Which method is used to define a schema in Mongoose?4 lựa chọnDễ100% trả lời đúng
Amongoose.Schema()
Bmongoose.Model()
Cmongoose.createSchema()
Dmongoose.defineSchema()
Lời giải
Để định nghĩa một schema trong Mongoose, chúng ta sử dụng phương thức mongoose.Schema(). Phương thức này cho phép chúng ta tạo một đối tượng schema mới, sau đó sử dụng nó để tạo các model trong cơ sở dữ liệu. Ví dụ, nếu chúng ta muốn tạo một model cho một bảng trong cơ sở dữ liệu, chúng ta sẽ sử dụng mongoose.Schema() để tạo một đối tượng schema, sau đó sử dụng phương thức model() của Mongoose để tạo model từ đối tượng schema đó. Phương thức mongoose.Schema() rất quan trọng trong Mongoose vì nó cho phép chúng ta định nghĩa cấu trúc dữ liệu của cơ sở dữ liệu.
Mở trang câu hỏi này →
24Which of the following is a valid use of populate()?4 lựa chọnDễ86% trả lời đúng
AModel.find().populate('field')
BModel.insert().populate('field')
CModel.delete().populate('field')
DModel.update().populate('field')
Lời giải
Câu hỏi này yêu cầu bạn xác định cách sử dụng hợp lệ của phương thức populate() trong Mongoose. Populate() là một phương thức được sử dụng để tải dữ liệu từ các mô hình liên quan. Để sử dụng populate() một cách hợp lệ, bạn cần sử dụng nó với phương thức find() để tìm kiếm dữ liệu và tải dữ liệu liên quan.
Mở trang câu hỏi này →
25In Mongoose, which method is used to create a new document?4 lựa chọnTrung bình63% trả lời đúng
AModel.find()
BModel.insert()
CModel.save()
Dnew Model().save()
Lời giải

Trong Mongoose, phương thức được sử dụng để tạo một tài liệu mới là new Model().save(). Phương thức này cho phép bạn tạo một tài liệu mới và lưu nó vào cơ sở dữ liệu. Phương thức này được sử dụng khi bạn muốn tạo một tài liệu mới và không muốn dựa vào dữ liệu hiện có trong cơ sở dữ liệu. Ví dụ, nếu bạn muốn tạo một tài liệu mới với các trường dữ liệu cụ thể, bạn có thể sử dụng phương thức new Model().save() như sau: const user =

Lời giải
new User({
  name: 'John Doe', email: 'john@example.com'
}

);

Lời giải
user.save((err, user) => {
  if (err) console.error(err); else console.log(user);
}

);

Mở trang câu hỏi này →
26What is a model in Mongoose?4 lựa chọnDễ88% trả lời đúng
AA method for querying the database.
BA schema used for validating documents.
CAn object that takes your schema and applies it to each document in its collection.
DA function used for database transactions.
Lời giải
Trong Mongoose, một mô hình (model) là một đối tượng được tạo ra từ một schema. Nó có nhiệm vụ áp dụng schema vào từng bản ghi (document) trong một tập hợp dữ liệu (collection). Mô hình được sử dụng để tương tác với cơ sở dữ liệu, bao gồm việc tạo, đọc, cập nhật và xóa dữ liệu. Khi tạo một mô hình, bạn cần cung cấp tên của tập hợp dữ liệu và schema được sử dụng để xác định cấu trúc của dữ liệu. Mô hình sẽ tự động tạo ra các phương thức để thực hiện các hành động cơ bản trên dữ liệu, như tìm kiếm, tạo mới, cập nhật và xóa.
Mở trang câu hỏi này →
AMongoose automatically shards collections for scalability
BMongoose provides schema validation and middleware for data modeling
CMongoose eliminates the need for a MongoDB server
DMongoose supports SQL queries for relational data
Lời giải
Sử dụng Mongoose ODM thay vì driver MongoDB Node.js gốc mang lại một lợi ích chính là cung cấp xác thực schema và middleware cho mô hình dữ liệu. Điều này giúp đảm bảo dữ liệu được nhập vào cơ sở dữ liệu có cấu trúc và hợp lệ, giảm thiểu khả năng xảy ra lỗi do dữ liệu không đúng định dạng. Mongoose cũng cung cấp các tính năng như tạo index, thực hiện các thao tác CRUD (Create, Read, Update, Delete) dữ liệu một cách dễ dàng và hiệu quả. Ngoài ra, Mongoose hỗ trợ các tính năng như middleware, hooks và các tính năng khác giúp phát triển ứng dụng trở nên linh hoạt và mạnh mẽ hơn.
Mở trang câu hỏi này →
28What is the output of this Mongoose code4 lựa chọncó codeDễ86% trả lời đúng
Đề bài
if validation fails? const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/db');

const schema =

Đề bài
new mongoose.Schema({
  age: {
    type: Number, min: 18
  }
}

); const Model =

Đề bài
mongoose.model('Model', schema);
async function run() {
  try {
    await Model.create({
      age: 17
    }
    );
  }
  catch (err) {
    console.log('Validation error');
  }
}

run();

AValidation error
BSaves document with default values if possible
CHandles error and continues execution silently
DLogs schema min violation details
Lời giải
Khi mã Mongoose gặp lỗi xác thực, nó sẽ tự động tạo ra một lỗi và dừng việc thực hiện. Trong trường hợp này, khi tạo một tài liệu với độ tuổi 17, Mongoose sẽ phát hiện ra rằng độ tuổi này không đáp ứng được yêu cầu tối thiểu là 18. Do đó, nó sẽ tạo ra một lỗi và in ra 'Validation error' lên console.
Mở trang câu hỏi này →
Đề bài
app.use(express.json());
mongoose.connect('mongodb://localhost:27017/test', {
  useNewUrlParser: true
}

); const userSchema =

Đề bài
new mongoose.Schema({
  name: String, email: String
}

); const User =

Đề bài
mongoose.model('User', userSchema);
app.post('/api/users', async (req, res) => {
  try {
    const user = await User.create(req.body); res.status(201).json(user);
  }
  catch (err) {
    res.status(400).json({
      error: err.message
    }
    );
  }
}

);

Đề bài
app.listen(3000);
A201 with { _id: "...", name: "Alice", email: "alice@example.com" }
B400 with { error: "Validation failed" }
C500 with { error: "Internal Server Error" }
DThrows an unhandled promise rejection
Lời giải
Khi thực hiện yêu cầu POST đến địa chỉ http://localhost:3000/api/users với cơ thể yêu cầu là { "name": "Alice", "email": "alice@example.com" } trong ứng dụng Express này, ứng dụng sẽ tạo một tài khoản mới trong cơ sở dữ liệu MongoDB dựa trên dữ liệu được gửi. Nếu quá trình tạo tài khoản thành công, ứng dụng sẽ trả về trạng thái 201 Created và thông tin về tài khoản mới được tạo, bao gồm ID, tên và địa chỉ email. Nếu quá trình tạo tài khoản gặp lỗi, ứng dụng sẽ trả về trạng thái 400 Bad Request và thông điệp lỗi.
Mở trang câu hỏi này →
30What keyword is used in a schema to define a reference for population?4 lựa chọnDễ75% trả lời đúng
Aref
Blink
Cpopulate
Djoin
Lời giải
Trong khi xây dựng schema, để định nghĩa một tham chiếu cho dân số, chúng ta sử dụng từ khóa nào? Câu trả lời đúng là "ref". Từ khóa "ref" được sử dụng để chỉ định một tham chiếu đến một tài nguyên khác trong schema. Điều này cho phép chúng ta định nghĩa một mối quan hệ giữa các tài nguyên khác nhau. Ví dụ, nếu chúng ta có một tài nguyên "users" và một tài nguyên "orders", chúng ta có thể sử dụng từ khóa "ref" để định nghĩa một tham chiếu từ "orders" đến "users". Điều này giúp chúng ta xây dựng một schema phức tạp và linh hoạt hơn.
Mở trang câu hỏi này →
31Which command is used to install Mongoose in a Node.js project?4 lựa chọnDễ100% trả lời đúng
Anpm get mongoose
Bnpm i mongoose
Cmongoose install
Dnode install mongoose
Lời giải
Để cài đặt Mongoose trong một dự án Node.js, bạn cần sử dụng lệnh npm i mongoose. Lệnh này sẽ tải xuống và cài đặt Mongoose cùng với các phụ thuộc khác cần thiết. Mongoose là một trong những thư viện quan trọng nhất trong Node.js, giúp bạn tương tác với cơ sở dữ liệu MongoDB một cách dễ dàng. Để sử dụng Mongoose, bạn cần cài đặt nó trước khi bắt đầu phát triển ứng dụng của mình. Lệnh npm i mongoose là một phần quan trọng trong quy trình cài đặt Mongoose và cần được thực hiện một cách chính xác để đảm bảo ứng dụng của bạn hoạt động đúng cách.
Mở trang câu hỏi này →
Adefault: 18
Brequired: true
Cvalidate: {}
Dimmutable: true
Lời giải
Để xác minh giá trị trong Mongoose schema, bạn cần sử dụng một trong các cấu hình sau. Cấu hình 'required: true' chỉ yêu cầu trường đó phải có giá trị, nhưng không kiểm tra giá trị đó có hợp lệ hay không. Để kiểm tra giá trị, bạn cần sử dụng 'validate: {}', nơi bạn có thể xác định các quy tắc kiểm tra giá trị. Ví dụ, bạn có thể xác định giá trị mặc định, hoặc xác định giá trị hợp lệ cho trường đó. Cấu hình 'immutable: true' chỉ cho phép trường đó không được thay đổi sau khi được tạo, nhưng không liên quan đến việc xác minh giá trị.
Mở trang câu hỏi này →
A{ type: String }
B{ ref: 'User' }
C{ type: Schema.Types.ObjectId, ref: 'User' }
D{ id: ObjectId }
Lời giải
Để xác định một tham chiếu ObjectId hợp lệ trong Mongoose, bạn cần sử dụng thuộc tính 'type' và 'ref'. 'type' phải được đặt thành 'Schema.Types.ObjectId' để chỉ định rằng nó là một chuỗi ObjectId. 'ref' được sử dụng để chỉ định tên của mô hình mà ObjectId này tham chiếu. Ví dụ, nếu bạn muốn tham chiếu đến mô hình 'User', bạn sẽ sử dụng '{ type: Schema.Types.ObjectId, ref: 'User' }'. Điều này cho phép Mongoose tự động tạo ra các liên kết giữa các mô hình dựa trên ObjectId.
Mở trang câu hỏi này →
34Which statements correctly describe the use of population in Mongoose queries?4 lựa chọnDễ100% trả lời đúng
APopulation is used to join data from multiple collections.
BPopulation is used to update multiple documents.
CPopulation can be done using the populate() method in a query.
DPopulation requires the use of schemas only.
Lời giải
Population trong Mongoose queries là một tính năng giúp bạn kết nối dữ liệu từ nhiều bộ sưu tập (collection) khác nhau. Điều này cho phép bạn truy cập và sử dụng dữ liệu từ các bộ sưu tập khác nhau trong một truy vấn duy nhất. Để sử dụng population, bạn cần sử dụng phương thức populate() trong một truy vấn. Ví dụ, nếu bạn có một bộ sưu tập người dùng (users) và một bộ sưu tập bài viết (posts) mà mỗi bài viết đều có một người dùng tạo ra nó, bạn có thể sử dụng population để lấy được thông tin người dùng tạo ra bài viết. Population không chỉ giúp bạn kết nối dữ liệu từ nhiều bộ sưu tập mà còn giúp bạn giảm thiểu số lượng truy vấn đến cơ sở dữ liệu, từ đó cải thiện hiệu suất của ứng dụng.
Mở trang câu hỏi này →