我正在使用MongoDB和Ruby on rails来构建and服务。我有大约10 of的数据。数据中的集合(类似于RDBMS中的表)按国家/地区划分,并且集合中的字段在不同的集合中略有不同。我有60套藏品。当我使用nosql数据库时,如果我将2-3个集合与不同的字段组合在一起,我不会有问题。
我的问题是,如果我没有组合我的集合,那么我的rails应用程序中就会有60个模型。如果我将它们组合在一起,那么我将拥有一个非常大的集合,性能将会降低。在我的服务器资源有限的情况下,最好的选择是什么?我将根据3-4个不同的参数查询我的数据库。例如,我可能只搜索一个特定的区域,或者可能搜索一个人拥有的特定许可证类型,或者有时两者都有。
发布于 2012-05-19 02:06:54
正如Sergio所说,一个大型集合,其中包含您查询的3-4个字段的索引,可能效果最好。
但是,您不必拥有60个模型,只需使用动态字段即可。这是使用MongoDB的主要好处之一。你可以在mongoid here上读到它。基本上,只需定义集合中所有文档通用的字段,然后根据需要设置和获取动态字段。
这里的一个问题是,方法(".",点)属性accesor只有在该属性被设置后才能工作。所以你不能说属性,除非你通过模型设置了一个属性: model.attribute = "blah“或model.attribute = "blah”。
https://stackoverflow.com/questions/10651978
复制相似问题