С mongodb можно делать практически все на стороне сервера. Причина, по которой вы обычно слышите «нет», заключается в том, что вы жертвуете слишком большой скоростью, чтобы это имело смысл в обычных обстоятельствах. Одна из главных сил PyMongo, Майк Дирольф с 10gen, имеет хороший пост в блоге об использовании javascript на стороне сервера с pymongo здесь: http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html. Его пример для хранения функции javascript для возврата суммы двух полей. Но вы можете легко изменить, чтобы вернуть первую букву вашего поля имени пользователя. Суть будет что-то вроде:
db.system_js.first_letter = "function (x) { return x.charAt(0); }"
Однако сначала поймите, что mongodb действительно хорош для извлечения ваших данных, но не очень хорош для их обработки. Рекомендация (см., Например, 50 советов и рекомендаций для разработчиков mongodb от Kristina Chodorow от Oreilly) состоит в том, чтобы сделать то, на что Эндрю кратко ссылался выше: создать столбец из первых букв и вернуть его вместо этого. Любая обработка может быть выполнена более эффективно в приложении.
Но если вы чувствуете, что даже запрос полного имени перед возвратом полного имени [0] из вашего «представления» представляет слишком большую угрозу безопасности, вам не нужно делать все как можно быстрее. Я некоторое время избегал уменьшения карты в mongodb из-за беспокойства общественности о скорости. Затем я запустил свою первую карту «Уменьшить» и перевернул большие пальцы в течение 0,1 секунды, поскольку она обработала 80 000 документов по 10 000 штук. Я понимаю в схеме вещей, это крошечный. Но это свидетельствует о том, что если для огромного веб-сайта это плохо сказывается на производительности при обработке на стороне сервера, это не значит, что это будет иметь для вас значение. В моем случае, я полагаю, что мне понадобится немного больше времени, чтобы перейти на Hadoop, чем просто есть эти 0,1 секунды время от времени. Удачи с вашим сайтом