View trong MongoDB là truy vấn được lưu trữ (stored query), không chứa dữ liệu vật lý, thực thi khi truy cập. Tạo bằng createView().
Dữ liệu gốc
> db.demo113.insertOne({ _id: 1, StudentId: "101", "Details": { Name: "Chris", Age: 21 }, Subject: "MySQL" });
{ "acknowledged" : true, "insertedId" : 1 }
Tạo View
> db.createView(
"firstView",
"demo113",
[ { $project: { "Name": "$Details.Name", Subject: 1 } } ]
);
{ "ok" : 1 }
Truy vấn View
> db.firstView.find();
{ "_id" : 1, "Subject" : "MySQL", "Name" : "Chris" }
Đặc điểm View:
- Read-only: Không insert/update/delete trực tiếp trên view
- Real-time: Luôn phản ánh dữ liệu mới nhất của collection gốc
- Không tốn storage: Chỉ lưu định nghĩa pipeline
- Pipeline: Có thể dùng mọi stage aggregate ($match, $project, $lookup...)
- Index: Sử dụng index của collection gốc
- Xóa view:
db.firstView.drop()
Ứng dụng: Bảo mật (che trường nhạy cảm), đơn giản hóa truy vấn phức tạp, cung cấp API ổn định cho ứng dụng.