Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Field aliases with Mongoid and Rails

It's common practice in MongoDB to use short key names to save space. For example, one might want to use "fn" instead of "first_name"

However in your app, you're screwed if you use "fn" all over the place. It's too ugly. For Rails specifically, is there an easy way to specify an alias when declaring a field in Mongoid?

Also, does anyone know of any open source sample projects that use Mongoid?

Thanks!

like image 850
Tony Avatar asked Nov 19 '10 16:11

Tony


2 Answers

you should consider using

 field :fn, :as => :firstname

as outlined here: http://groups.google.com/group/mongoid/browse_thread/thread/ce3298d6a167bd70

this is a very good practice which is fully supported in mongoid.

like image 88
z3cko Avatar answered Oct 10 '22 19:10

z3cko


I've never seen short key names in any MongoDB projects, so I wouldn't say it's common practice. I don't think you'd see a noticeable speed improvement and it would complicate your code unnecessarily. Descriptive names are good so long they aren't so descriptive that it takes you forever to type.

There's lots of MongoDB open-source projects. Just do a search on github.

-- edit below --

This was a pretty opinionated answer. Overwriting the processing methods (https://github.com/mongoid/mongoid/blob/master/lib/mongoid/attributes/processing.rb) as described in other answers is more appropriate in the scenario where you MUST have small field names.

like image 45
Dave Rapin Avatar answered Oct 10 '22 18:10

Dave Rapin