管理MongoDB中标签元数据的最佳方法

时间:2015-09-21 14:20:37

标签: mongodb tags metadata

我正在使用MongoDB,我想在文档中添加标签。

在我的应用程序中,我有几组用户。我想只允许同一组的用户相互分享关于文档的标签,我不希望其他组的人看到标签。

我需要支持添加标签,删除标签和查找标签(任何操作员或所有操作员 - 这意味着我需要在给定列表中加工所有标签,或者只需要给定列表中的标签)

目前我这样做:

{ _id: someID,
  tags: ["A", "B", "C"]
  tags_metadata: [ { "user"  : "userFoo",
                     "group" : "groupA",
                     "tag"   : "A"},
                   { "user"  : "userBar",
                     "group" : "groupB",
                     "tag"   : "B"}
                   { "user"  : "userFoo",
                     "group" : "groupA",
                     "tag"   : "C"}
                  ]
 }

如果我需要在groupA中为userFoo搜索标签[" A"," B"],我会做的是

db.find({"tags" : {"$all" : ["A","B"]})

然后在应用程序中,我将浏览光标上的tags_meatadata并确保所有标记(" A"," B")都被我的组中的人标记。

这是完成此任务的好方法吗? 我应该考虑一个更好的一个 (现在我只是索引标记,所以我很快就得到了mongo查询,并希望tags_metadata不会太大)

感谢。

0 个答案:

没有答案