我正在使用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不会太大)
感谢。