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

标签 java multithreading mongodb

我有一个巨大的数据库,我必须在“关键字”列中找到某些关键字。如果我在“关键字”列中找到要搜索的单词,那么我会更新(增加 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/

相关文章:

Java程序在IDE中工作,但编译后(eclipse)给出java.lang.NoClassDefFoundError

java - 如何访问 karaf 功能文件中的系统属性

java - 两个不同的类 A 和 B 在自己的线程上调用同一类实例 C 的方法

c# - 如何计算C# Mongodb强类型驱动程序中单个属性的平均值

node.js - Mongodb 与 nodejs 的连接

node.js - 在 kubernetes 中使用 azure cosmos mongodb

java - 如何从单元格表中删除一行

Java 字段隐藏

java - 在 Java 线程中模拟竞争条件的代码

java - Java线程中的 "blocked Count"和 "Waited Count"是什么意思?