我有一个巨大的数据库,我必须在“关键字”列中找到某些关键字。如果我在“关键字”列中找到要搜索的单词,那么我会更新(增加 1)同一元组中的另一列“计数器”。 我想要做的是,使用线程同时搜索多个关键字,一旦找到关键字就会增加计数器值。
例如:我想搜索“身份验证”和“失败”。 我为此运行了 2 个线程 最后,“关键字”列为“身份验证、失败”的元组的“计数器”值为 2 并且“Keywords”列值“Authentication, Passes”的元组应将“Counter”值设置为 1。 “Keywords”列值为“Security, Passes”的元组的“Counter”值为 0。
预先感谢您的帮助。
最佳答案
如果您在线程上使用 $inc
,您应该会得到您想要的。
编辑:
主题 1:
coll.update( { keywords: "authentification" }, { $inc: { counter: 1 } } );
主题 2:
coll.update( { keywords: "failure" }, { $inc: { counter: 1 } } );
您必须确保的是,keywords
属性是使用字符串
或数组
设置的。如果您的源数据看起来像 "Authentication, Passes"
您必须解析它并创建一个 array
,例如 [ "authentification", "passes"]
脱离它。
关于java - 在java中使用多线程更新mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21375587/