MongoDB中常见的做法是使用短密钥名称来节省空间。例如,可能想要使用“fn”而不是“first_name”
然而,在你的应用程序中,如果你在整个地方使用“fn”,那就搞砸了。太难看了。特别是对于Rails,在Mongoid中声明一个字段时是否有一种简单的方法来指定别名?
另外,有没有人知道任何使用Mongoid的开源示例项目?
谢谢!
答案 0 :(得分:12)
你应该考虑使用
field :fn, :as => :firstname
如下所述: http://groups.google.com/group/mongoid/browse_thread/thread/ce3298d6a167bd70
这是一个非常好的做法,在mongoid中完全支持。
答案 1 :(得分:3)
我从未在任何MongoDB项目中看到过短名称,所以我不会说这是常见做法。我认为你没有看到明显的速度改进,它会使你的代码不必要地复杂化。描述性名称很好,所以它们不是那么描述性的,它会让你永远输入。
有很多MongoDB开源项目。只需在github上搜索一下。
- 在下面编辑 -
这是一个非常自以为是的答案。如其他答案中所述,覆盖处理方法(https://github.com/mongoid/mongoid/blob/master/lib/mongoid/attributes/processing.rb)更适合于必须具有小字段名称的场景。
答案 2 :(得分:0)
这样的东西应该在你的类文件中起作用。 (它并未在所有情况下都经过测试,只是将哈希传递给创建或更新。)
field :fn, :type => String
alias :first_name :fn
alias :filtered_process :process
def process(attrs = nil)
attrs[:fn] = attrs[:first_name] unless attrs.nil?
filtered_process(attrs)
end