我正在寻找有关如何构建此数据模型的标签部分的一些建议:
这是它的简化版本:
- 一个站点有很多帖子(关系关联 [references_many in mongoid speak])。一个站点有一个标签树
- 帖子有一组标签(网站标签的子集,顺序无关紧要)
我关心的用例是:
- 以树的形式快速保存和检索站点的标签(即能够在 UI 中将它们显示为树)
- 快速查询站点的哪些帖子具有特定标签。
如果没有树结构,http ://github.com/wilkerlucio/mongoid_taggable 可以解决我的用例。我已经看到了 Mongoid 的一些acts_as_tree 端口,例如:
- http://github.com/benedikt/mongoid-tree
- http://github.com/saks/mongoid_acts_as_tree
- http://github.com/ticktricktrack/mongoid_tree
它们似乎都采用关系方法而不是嵌入式方法来存储层次结构,这意味着上面的两个用例都会很慢(可能需要 map/reduce)。
有没有人做过类似的事情,或者有什么建议?理想情况下,我会喜欢 Mongoid 解决方案,但我也很乐意使用 Ruby 驱动程序。