1

作为具有 RDBMS 背景的 mongo/nosql 新手,我想知道最好的方法是什么。

目前,我有大量文档,其中包含一些领域,我认为是“参考数据”。
我需要在搜索界面中显示总结这些“参考字段”的可能值,以进一步对我的文档集进行过滤。

让我们举一个关于营养的非常简单和愚蠢的例子。以下是一些 mongo 文档的摘录:

{ "_id": 1, "name": "apple", "category": "fruit"}
{ "_id": 1, "name": "orange", "category": "fruit"}
{ "_id": 1, "name": "cucumber", "category": "vegetable"}

在应用程序中,我希望有一个选择框显示“类别”的所有可能值。在这里它将显示“水果”和“蔬菜”。

最好的方法是什么?

  • 从现有文档中提取数据?
  • 创建一些列出唯一可能值的参考文档(就像我在 RDBMS 中所做的那样)
  • 将参考数据存储在 rdbms 中,并以编程方式链接 mongo 和 rdbms...
  • 别的东西?
4

1 回答 1

1

第一个选项是最容易实现的,并且如果您正确设置了索引(请参阅distinct command)应该是有效的,所以我会选择这个。

您还可以选择第二个选项(链接到参考集合 - RDBMS 方式),它以性能(您将需要更多查询来获取数据)换取空间(您将需要更少的空间)。此外,如果该类别也用于其他集合,则此选项是首选。

在这种情况下,我建议不要使用混合系统(NoSQL + RDBMS),因为其他选项更好。

您还可以将类别值直接存储在应用程序代码中 - 取决于您的用例。有时这是有道理的,尽管如果你告诉他,任何 RDBMS 狂热者都会泪流满面(或更糟)。YMMV。;)

于 2012-04-13T11:27:10.060 回答