存储/使用MongoDB中的标签用于文档管理系统
题
因此,我正在研究一个宠物项目,在那里我存储各种文本文件。我已经设置了我的应用程序以将标签保存为我的一个集合中的字符串,因此一个例子是:
标签:“ Linux Apache WSGI”
存储它们并搜索它们的工作正常,但是当我想做类似标签云,计算所有各种标签或基于标签的动态选择系统之类的事情时,我的问题是什么,什么是将它们分解为与?还是我应该以其他方式存储它们?
从逻辑上讲,我可以扫描每个记录,并获取所有标签,根据空间将其打破,然后以某种方式缓存结果。也许这是正确的答案,但我想问社区智慧。
我正在使用Pymongo与数据库进行交互。
解决方案
还是我应该以其他方式存储它们?
存储标签的标准方法是将它们存储为数组。就您而言,数据库看起来像:
tags: ['linux', 'apached', 'wsgi']
...分手与之合作的最佳方法是什么?
这是什么 地图/减少 是为了设计。这有效地“扫描每条记录”。地图/降低的输出是您可以查询的另一个集合。
但是,还有另一种方法可以保留“柜台”并更新它们。因此,当您保存新文档时,您还会增加与该文档相关的所有标签。
不隶属于 StackOverflow