在java中使用多个线程更新mongodb

时间:2014-01-27 07:58:02

标签: java multithreading mongodb

我有一个庞大的数据库,我必须在“关键字”列中找到某些关键字。如果我在“关键字”列中找到我要搜索的单词,那么我在同一元组中更新(增加1)另一列“计数器”。 我想要做的是,使用线程同时搜索多个关键字,一旦找到关键字就会增加计数器值。

例如:我想搜索“身份验证”和“失败”。 我为此运行了2个线程 最后,将“关键字”列作为“身份验证,失败”的元组应将“计数器”值设为2 具有“关键字”列值“认证,通过”的元组应将“计数器”值设为1。 带有“关键字”列值“安全,通过”的元组应将“计数器”值设为0。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果你在线程上使用$inc,你应该得到你想要的东西。

编辑:

主题1:

coll.update( { keywords: "authentification" }, { $inc: { counter: 1 } } );

主题2:

coll.update( { keywords: "failure" }, { $inc: { counter: 1 } } );

您需要确保的是,keywords属性设置为stringarray。如果您的源数据看起来像"Authentication, Passes",那么您必须对其进行解析并从中array生成[ "authentification", "passes" ]