Không có cách nào $lookup
sẽ nhanh hơn so với việc có danh sách id nhận xét trên đối tượng video thực tế. Ý tôi là bạn phải thực hiện whole other request
mongo để có được chúng ngay bây giờ. Vì vậy, hiệu suất khôn ngoan rõ ràng là việc tra cứu sẽ thêm thời gian. Điều đó giả sử bạn không sử dụng mongoose populate
để "chuyển đổi" các id nhận xét đó thành các đối tượng được tham chiếu.
Nếu bạn đang xóa các nhận xét khỏi video (cũng như số lượng thực tế ủng hộ) và thực hiện tra cứu là cách để thực hiện. Vì bạn đang đối sánh ngay lập tức trong đối số của mình và sau đó thực hiện lookup
đơn giản Tôi không thấy điều này sẽ là một nút thắt cổ chai cho bạn như thế nào. Ngoài ra, bạn có thể tối ưu hóa / thay đổi / điều chỉnh tổng hợp của mình vie giải thích
vv
Lược đồ video của bạn sẽ khá rõ ràng theo cách đó:
const VideoSchema = new mongoose.Schema({
caption: {
type: String,
trim: true,
maxlength: 512,
required: true,
},
owner: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true,
},
// some more fields
}, { timestamps: true });