我有一个庞大的数据库,我必须在“关键字”列中找到某些关键字。如果我在“关键字”列中找到我要搜索的单词,那么我在同一元组中更新(增加1)另一列“计数器”。 我想要做的是,使用线程同时搜索多个关键字,一旦找到关键字就会增加计数器值。
例如:我想搜索“身份验证”和“失败”。 我为此运行了2个线程 最后,将“关键字”列作为“身份验证,失败”的元组应将“计数器”值设为2 具有“关键字”列值“认证,通过”的元组应将“计数器”值设为1。 带有“关键字”列值“安全,通过”的元组应将“计数器”值设为0。
提前感谢您的帮助。
答案 0 :(得分:1)
如果你在线程上使用$inc
,你应该得到你想要的东西。
编辑:
主题1:
coll.update( { keywords: "authentification" }, { $inc: { counter: 1 } } );
主题2:
coll.update( { keywords: "failure" }, { $inc: { counter: 1 } } );
您需要确保的是,keywords
属性设置为string
或array
。如果您的源数据看起来像"Authentication, Passes"
,那么您必须对其进行解析并从中array
生成[ "authentification", "passes" ]
。