Có thể thực hiện bất cứ điều gì ở phía máy chủ với mongodb. Lý do bạn thường nghe thấy "không" là bạn hy sinh quá nhiều tốc độ để nó có ý nghĩa trong những trường hợp bình thường. Một trong những lực lượng chính đằng sau PyMongo, Mike Dirolf với 10gen, có một bài đăng blog tốt về việc sử dụng javascript phía máy chủ với pymongo tại đây: http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html . Ví dụ của anh ấy là lưu trữ một hàm javascript để trả về tổng của hai trường. Nhưng bạn có thể dễ dàng sửa đổi để trả về chữ cái đầu tiên của trường tên người dùng của bạn. Ý chính sẽ là:
db.system_js.first_letter = "function (x) { return x.charAt(0); }"
Trước tiên, hãy hiểu rằng mongodb được tạo ra để thực sự tốt trong việc truy xuất dữ liệu của bạn, không thực sự tốt trong việc xử lý nó. Khuyến nghị (xem ví dụ 50 mẹo và thủ thuật dành cho các nhà phát triển mongodb từ Kristina Chodorow của Oreilly) là thực hiện những gì Andrew ám chỉ ở trên:tạo một cột chữ cái đầu tiên và trả lại cột đó thay thế. Mọi xử lý có thể được thực hiện hiệu quả hơn trong ứng dụng.
Nhưng nếu bạn cảm thấy rằng ngay cả việc truy vấn tên đầy đủ trước khi trả về tên đầy đủ [0] từ 'chế độ xem' của bạn là quá nhiều rủi ro về bảo mật, bạn không cần phải làm mọi thứ theo cách nhanh nhất có thể. Tôi đã tránh giảm bản đồ trong mongodb trong một thời gian vì tất cả mối quan tâm của công chúng về tốc độ. Sau đó, tôi chạy bản đồ đầu tiên của mình và xoay ngón tay cái trong 0,1 giây khi nó xử lý 80.000 10k tài liệu. Tôi nhận ra trong sơ đồ của mọi thứ, nó rất nhỏ. Nhưng nó minh họa điều đó chỉ vì việc một trang web lớn chịu ảnh hưởng hiệu suất trên một số xử lý phía máy chủ là không tốt, không có nghĩa là nó sẽ quan trọng đối với bạn. Trong trường hợp của tôi, tôi tưởng tượng tôi sẽ mất nhiều thời gian hơn để di chuyển sang Hadoop so với chỉ ăn .1 giây đó thỉnh thoảng. Chúc may mắn với trang web của bạn