Trong bộ kết quả của chế độ xem theo cách thủ công, chế độ xem được tạo ở chế độ nền. Nếu bạn có ví dụ 1 triệu tài liệu mỗi kích thước 4Kb mà không có bất kỳ lượt xem nào, hãy lấy ~ 4Gb trên đĩa. Khi bạn tạo chế độ xem có chức năng bản đồ như
function(doc, meta) {
emit(doc.name, doc);
}
Kết quả xem được lưu trữ riêng biệt. Và trong hầu hết các trường hợp (nếu bạn xem truy vấn với thông số Stale=Ok
) couchbase trả về kết quả từ tập hợp các bản ghi "biên dịch sẵn", couchbase không quét tất cả tài liệu trên mỗi truy vấn.
Vì vậy, emmiting null trong các chức năng bản đồ được sử dụng để ngăn chặn việc sử dụng không gian đĩa và nó cũng làm tăng tốc độ lập chỉ mục.
Bây giờ câu hỏi thứ hai về phép thuật cơ sở khi "kết quả từ GetView (" bia "," bia ") đang nhận được giá trị hoàn hảo". Các hoạt động Couchbase get(key)
và getMulti(keys)
rất nhanh. Vì vậy, khi bạn xem truy vấn phát ra null
, nó sẽ trả về không chỉ nulls
, mà còn trả về các id tài liệu. Sau đó, bạn có thể sử dụng thủ công getMulti
cho mảng tài liệu đó để nhận giá trị của tài liệu hoặc trong một số SDK có tham số truy vấn được gọi là IncludeDocs
sẽ tự động thực hiện tương tự.
thực sự vì bản chất javascript, bạn có thể gọi chỉ là phát ra (doc.name) – avsej