【发布时间】:2012-02-12 21:24:11
【问题描述】:
我有一个标签集合,其中包含以下结构的文档:
{
word:"movie", //tag word
count:1 //count of times tag word has been used
}
我得到了一组新标签,需要在标签集合中添加/更新:
["music","movie","book"]
我可以使用以下查询更新标签集合中当前存在的所有标签的计数:
db.Tags.update({word:{$in:["music","movies","books"]}}, {$inc:{count:1}}), true, true);
虽然这是一种有效的更新策略,但我无法查看在集合中未找到哪些标记值,并且将 upsert 标志设置为 true 不会为未找到的标记创建新文档。
这是我卡住的地方,我应该如何处理将“新”值批量插入到标签集合中? 有没有其他方法可以更好地利用更新,以便它更新新的标签值?
(注意:我将 Node.js 与 mongoose 一起使用,使用 mongoose/node-mongo-native 的解决方案会很好但不是必需的)
谢谢
【问题讨论】: