所以我正在开发一个宠物项目,在其中存储各种文本文件。我已设置我的应用程序将标签保存为我的集合之一中的字符串,因此示例如下:
标签:“Linux Apache WSGI”
存储它们并搜索它们工作得很好,但是当我想做标签云之类的事情,计算所有不同的标签,或者创建一个基于标签的动态选择系统时,我的问题就来了,最好的打破方法是什么他们准备好一起工作吗?或者我应该以其他方式存储它们?
从逻辑上讲,我可以扫描每条记录并获取所有标签,根据空间打破它们,然后以某种方式缓存结果。也许这是正确的答案,但我想询问社区的智慧。我正在使用 pymongo 与我的数据库交互。
最佳答案
Or should I be storing them some other way?
存储标签的标准方法是将它们存储为数组。在您的情况下,数据库看起来像:
tags: ['linux', 'apached', 'wsgi']
... what is the best way to break them up to work with?
这就是 Map/Reduce是专为.这有效地“扫描每条记录”。 Map/Reduce 的输出是您可以查询的另一个集合。
但是,还有另一种方法可以做到这一点,那就是保留“计数器”并更新它们。因此,当您保存新文档时,您还会增加与该文档相关的所有标签。
关于python - 在 mongodb 中存储/使用文档管理系统的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810440/