Có vẻ như bạn đã thêm hai trường age_rank
, average_age
. Đây là những trường được tính toán hiệu quả dựa trên dữ liệu bạn đã có. Nếu tôi đã cung cấp cho bạn tài liệu có số lượt xem trang và ngày sinh của người dùng, thì việc mã máy khách tìm tối thiểu / tối đa, trung bình, v.v.
Đối với tôi, có vẻ như bạn đang yêu cầu MongoDB thực hiện tổng hợp cho phía máy chủ của bạn. Nhưng bạn đang thêm giới hạn rằng bạn không muốn sử dụng Bản đồ / Thu nhỏ?
Nếu tôi hiểu đúng câu hỏi của bạn, bạn đang tìm kiếm thứ gì đó mà bạn có thể nói "thêm mục này vào một mảng và để tất cả các mục phụ thuộc tự cập nhật" ? Bạn không muốn người đọc thực hiện bất kỳ logic nào, bạn muốn mọi thứ diễn ra "kỳ diệu" ở phía máy chủ.
Vì vậy, có ba cách khác nhau để giải quyết vấn đề này, nhưng chỉ một trong số chúng hiện khả dụng:
- Viết phía máy khách logic này. Nó có vẻ không giống như giải pháp bạn muốn, nhưng nó sẽ hoạt động. Nếu bạn có dữ liệu cơ bản, thì việc thực hiện tối đa / phút / trung bình / trung bình sẽ khá đơn giản trong hầu hết các ngôn ngữ.
- Tận dụng các tính năng sắp tới cho Tổng hợp . Chúng không được lên lịch cho đến 1.9.x. Tính năng tổng hợp được cải thiện sẽ cho phép trích xuất dữ liệu bạn đang tìm kiếm, tuy nhiên, bạn vẫn phải viết các truy vấn thích hợp. DB bên dưới vẫn không chứa dữ liệu bạn đang tìm kiếm.
- Bạn cần có trình kích hoạt . Nếu bạn thực sự muốn DB luôn nhất quán và chứa dữ liệu tóm tắt, thì đây là thứ bạn cần. Tuy nhiên, tính năng kích hoạt vẫn chưa tồn tại.
Thật không may, lựa chọn duy nhất của bạn lúc này là # 1. May mắn thay, tôi biết một số người đang sử dụng thành công tùy chọn số 1.