【发布时间】:2018-04-05 07:59:29
【问题描述】:
我想实现带有 NodeJS 和 MongoDB 支持的主题标签功能,这样我也可以计算使用情况。每当用户向页面添加主题标签时,我都想在数据库中推送或更新它们。每个标签看起来像这样:
{_id:<auto>, name:'hashtag_name', uses: 0}
我面临的问题是用户也可以添加新标签,所以当他点击“完成”时,我必须增加现有标签的“使用”字段,并添加新标签。诀窍是如何只用一条 Mongo 指令来做到这一点?到目前为止,我想到了两种可能的方法来实现这一点,但我对这两种方法都不是特别满意:
选项 1
我有一个服务,它在用户开始写一篇新文章之前从数据库中获取现有标签。基于此,我可以检测哪些标签是新标签,并运行 2 个查询:一个将添加新标签,另一个将更新现有标签
选项 2
我会将标签列表发送到服务器,然后我将为每个标签运行一个 find();如果我找到了,我会更新,如果没有,我会创建它。
选项 3(暂时没有解决方案)
最好的选择是运行一个带有标签名称数组的查询,对现有标签名称执行 $inc 操作,然后添加缺少的标签名称。
问题
有没有更好的解决方案?我可以从选项#3 中获得最终结果吗?
【问题讨论】:
-
您当前的 mongodb 3.x 版本是什么?
-
是的,3.x。忘了说,抱歉