任何MongoDB的ORM允许你别名字段?

我只是看着这个: http : //blog.mongodb.org/post/38467892360/mongodb-schema-design-insights-and-tradeoffs-from

有一个build议说出来了:在多次复制的文档中,尽量使字段名称尽可能小:

总是使用短字段作为约定来缩小收集大小。 这将有助于您节省内存。

在“publicationUrl”上select“u”。 如果你正在谈论数百万行,这是有道理的。 但是,那里有很大的可读性问题。 它可能是显而易见的价值是一个url,但它是什么样的url?

尽pipe这可能在ORM中是可以解决的。 是否有任何与MongoDb接口的ORM允许你说数据库中的“u”会映射到代码中的“publicationUrl”? 当你有代码中的au这样的东西时,这个可读性很差; article.u没有太多好处。

(Ruby和node.js标签在那里,因为那些是我用mongo工作的语言。随意添加标签。)

用Ruby ORM Mongoid这很容易。 以下是直接来自文档的示例:

 class Band include Mongoid::Document field :n, as: :name, type: String end band = Band.new(name: "Placebo") band.attributes #=> { "n" => "Placebo" } criteria = Band.where(name: "Placebo") criteria.selector #=> { "n" => "Placebo" } 

我已经在很多项目上使用了Mongoid(虽然都是小的),并且非常喜欢使用它。 文档真的很棒,文档中还有一个关于性能的部分。

根据这个讨论 , Mongoose允许使用getter和setter的虚拟字段名称。 不幸的是虚拟机不能用于查询和其他服务器端操作,比如map-reduce。 讨论还build议这个插件的别名,以及似乎解决查询问题,但我怀疑它也将有更复杂的服务器端操作的麻烦。

学说MongoDB ODM允许你为你的领域设置别名,而你的对象包括getter和setter可以保持可读性fe:

/ ** @String(name =“pUrl”)* / private $ publicationUrl;

注释参考 – Doctrine MongoDB ODM 1.0.0-BETA2文档 – 字段