首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongo或sql标记系统

mongo或sql标记系统
EN

Stack Overflow用户
提问于 2012-12-09 02:31:56
回答 2查看 651关注 0票数 1

我的脑海中有一个标签系统,这是我的想法,

1,我可以创建一个mongodb数据库,并将标签添加到嵌入的字段中,然后对它们进行索引

2,我可以为它使用SQL,我可以将标签作为新条目添加到表中

3,我可以在mongodb上创建另一个集合,如下所示

例如,标签是“鸡”,这是文档

代码语言:javascript
复制
tag:"chicken",
id:"1200000,32555,8787888888"

标签是鸡,id是与鸡相关的其他文件,我想这些系统会让我很头疼。尤其是第一个。你有什么我需要的标签系统的想法吗?顺便说一下,在开始这个问题之前,会有超过一百万个不同的标签和搜索这个标签系统,

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-12-09 03:32:20

如果你想在mongo中做到这一点,我会创建如下文档

代码语言:javascript
复制
{
    tag: "chicken",
    ids : [ 12345,23456,34567 ]
},
...

然后是两个索引,一个在"tag“上,一个在"ids”上(http://docs.mongodb.org/manual/core/indexes/#multikey-indexes)。

代码语言:javascript
复制
db.tags.ensureIndex( { "tag": 1 } );
db.tags.ensureIndex( { "ids": 1 } );

根据您需要执行的查询,在这两个属性上创建复合索引可能是有价值的。http://docs.mongodb.org/manual/core/indexes/#compound-indexes

例如:

代码语言:javascript
复制
db.tags.ensureIndex( { "ids": 1, "tag" : 1 } );

100万个标签文档不是问题,我有大约300万个文档的类似集合,每个文档在多键索引中有15个项目,性能很好(来自dev vm)。

我希望这能帮到你

票数 1
EN

Stack Overflow用户

发布于 2012-12-09 03:32:51

多亏了MongoDB索引列表的方式,它非常适合这样的标记。考虑像这样的文档:

代码语言:javascript
复制
{_id: 42, name: "someName", tags: ["chicken", "parrot", "hovercraft"]}

如果为tags字段添加索引,则可以有效地执行如下查询:

代码语言:javascript
复制
{tags: "chicken"}

此查询将在其tags列表中查找包含"chicken"的所有文档-即使用chicken标记标记的所有文档。

我不确定这是否是你在第一点中的意思。如果是这样,我就不明白为什么它会让你头疼。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13780522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档