gpt4 book ai didi

tags - 关于 Mongoid/MongoDB 标签树结构的建议

转载 作者:可可西里 更新时间:2023-11-01 10:35:52 25 4
gpt4 key购买 nike

我正在寻找有关如何构建此数据模型的标签部分的一些建议:

这是它的简化版本:

  • 一个站点有很多帖子(关系关联 [mongoid 中的 references_many])。一个站点有一个标签树
  • 帖子有一组标签(站点标签的子集,顺序无关紧要)

我关心的用例是:

  1. 以树形式快速保存和检索站点标签(即能够在 UI 中将它们显示为树)
  2. 快速查询站点的哪些帖子具有特定标签。

没有树结构,http://github.com/wilkerlucio/mongoid_taggable解决我的用例。我见过 Mongoid 的一些 acts_as_tree 端口,例如:

他们似乎都采用关系方法而不是嵌入式方法来存储层次结构,这意味着上面的两个用例都会很慢(可能需要 map/reduce)。

有没有人做过类似的事情,或者有什么建议?理想情况下,我喜欢 Mongoid 解决方案,但我也很乐意转向 Ruby 驱动程序。

最佳答案

您是否需要更新树的结构(即将标签移动到另一个父节点)?如果可能的话,嵌入式方法将变得困难,而关系/规范化方法更有意义。

我可能会将标签本身存储在文档中(嵌入),但如果有任何机会我需要在线移动树节点,那么我会将层次结构存储在另一个文档中。如果您首先展平搜索查询(根据当前树)然后搜索那些标签,查询不必很慢。如果扁平化搜索查询最终包含数百个标签(您的树有多高?),则此方法可能无法很好地扩展。

如果无法将标签移动到新父级(或只能由您在计划维护期间),请继续并嵌入整个层次结构。

关于tags - 关于 Mongoid/MongoDB 标签树结构的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com