问题标签 [mongo-java-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - MongoDB更新原子操作
我只是在学习 MongoDB 并将 URL 缩短器作为 POC 实现。我正在阅读关于 NodeJS/Mongoose 的教程并看到了这个方法:
更新和回调操作都是原子的吗?还是只有更新操作是原子的?
如果两者都是原子的,如何在 Java 中做到这一点?Mongo-java-driver 有这个方法
但显然不支持回调。任何帮助表示赞赏。
mongodb - MongoException:java.lang.OutOfMemoryError:超出 GC 开销限制
我正在批量写入 MongoDB 并收到 OOM 异常(java.lang.OutOfMemoryError:超出 GC 开销限制)。我有两个问题:
- OOM 是来自 Mongo Client Driver 还是 MongoDB Server?
- 是否有线索为什么会发生 OOM?
FO 2016-11-15 15:19:10,437 - [TS] org.mongodb.driver.cluster info(71) - WritableServerSelector 从集群描述 ClusterDescription{type=UNKNOWN,connectionMode=MULTIPLE,all=[ServerDescription{地址=mongo.server1-or:30000, type=UNKNOWN, state=CONNECTING}, ServerDescription{address=mongo.server2:30000, type=UNKNOWN, state=CONNECTING}, ServerDescription{address=mongo.server3:30000, type=未知,状态=连接}]}。在超时之前等待 30000 毫秒 INFO 2016-11-15 15:19:11,448 - [TS] org.mongodb.driver.cluster info(71) - WritableServerSelector 从集群描述中未选择服务器 ClusterDescription{type=UNKNOWN, connectionMode=多个,全部=[ServerDescription{address=mongo.server1-or:30000, type=UNKNOWN, state=CONNECTING}, ServerDescription{address=mongo.server2:30000, type=UNKNOWN, state=CONNECTING}, 服务器描述{地址=mongo.server3:30000,类型=未知,状态=连接}]}。在超时之前等待 30000 毫秒 INFO 2016-11-15 15:19:14,324 - [TS] org.mongodb.driver.cluster info(76) - 连接到服务器 mongo.server2:30000 com.mongodb 时监控线程出现异常.MongoException:java.lang.OutOfMemoryError:在 com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:125) 在 com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:128) 处超出 GC 开销限制java.lang.Thread.run(Thread.java:745) 原因:java.lang.OutOfMemoryError:超过 GC 开销限制 INFO 2016-11-15 15:19:14,325 - [TS] com.xyz.executors.ConsumeMessageTask 运行(45) - 计划线程池将写入 MongoDB INFO 2016-11-15 15:19:14,325 - [TS] org.mongodb。driver.connection info(71) - 打开连接 [connectionId{localValue:28690}] 到 mongo.server3:30000 错误 2016-11-15 15:19:17,353 - [TS] com.xyz.executors.ConsumeMessageTask run(117) - 批量写入 MongoDB com.mongodb.MongoTimeoutException 时出错:在等待与 WritableServerSelector 匹配的服务器时超时 30000 毫秒。集群状态的客户端视图是 {type=UNKNOWN, servers=[{address=mongo.server1-or:30000, type=UNKNOWN, state=CONNECTING}, {address=mongo.server2:30000, type=UNKNOWN, state=CONNECTING , 异常={com.mongodb.MongoException: java.lang.OutOfMemoryError: GC 开销限制超出}, 由{java.lang.OutOfMemoryError: GC 开销限制超出}}, {address=mongo.server3:30000, type=UNKNOWN , state=CONNECTING}] 在 com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:
java - MongoDB Java:存储和增加 2x2 矩阵
我正在构建一个模型,允许用户在 mongodb 中配置表并根据行、列名递增值。下面是我的模型:
当一个新对象被保存时,我用全 0 填充矩阵,
我的用例是,当遇到行和列的单词时,我需要增加相应的数字。列和行的标签存储在相应的列表中。所以,我正在尝试做这样的事情:
但是,我似乎无法找到/形成可以同时执行这两种操作的查询(即返回索引和更新值)。另一种方法是通过 id 获取文档并在 Java 中增加它,但这需要两次 db 调用。
有没有其他方法可以做到这一点?我应该改变我的模型吗?
mongodb - 更新 MongoDB 中的嵌套数组文档
所以我有一个像这样的 mongo 文档,我需要根据 val 更新数组
这是我尝试过的代码
更新工作正常,但如果查找失败则不会更新这是我得到的错误:
com.mongodb.MongoWriteException:位置运算符未从查询中找到所需的匹配项。未扩展更新:com.mongodb.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:558) 处的 BASIC.tin.$.val.mongoCollectionImpl.update(MongoCollectionImpl.java:542)
mongodb - 在java中的mongodb中动态创建数据库
有没有办法使用 3.x Java 驱动程序在 mongo 中动态创建一个新数据库,同时添加一个具有已定义角色的用户?
mongodb - 无法从 java 驱动程序连接到 MongoLab
我有 Mongolab 帐户,该帐户中只有一个用户。
我可以使用 MongoChef 工具连接到数据库,但是当我尝试使用 java 驱动程序 3.2.0 从 Eclipse 中连接到该数据库时,我不断遇到身份验证失败。我收到以下错误。我在 Java 7 上。
编辑 用于连接到 MongoLab 托管的 MongoDB 实例的 Java 代码。
尝试连接时收到异常。
java - java代码在编译时在mongodb中给出错误
我是 mongodb 的新手,我有以下代码
我在编译时收到以下错误
注意:使用 mongo 3.4.1
新代码:
编译没有错误但运行时错误
mongodb - Mongo DB Java 3.x 驱动程序 - 按查询分组
我想学习如何group by
使用Mongo DB Java 3.x Driver
. 我想通过 对我的集合进行分组,并按结果对结果usernames
进行排序。count
DESC
这是我想实现Java
等效的shell查询:
这是Java
我实现的代码:
我需要的结果是按username
. countOfResults
返回集合拥有的文档总数。
json - Mongo db 和在查询中使用地图
我是 mongo 的新手,我正在尝试找出查询,我正在使用 java 驱动程序
我在数据库中有一个文件如下
现在我想对文档做一个 upsert 并且只在它不存在时更新它
我有以下内容,如果它不存在我想插入它,如果它存在则更新。
当我尝试在过滤器和文档中设置 json 的“其他”部分时似乎有问题,它不起作用。如果我从过滤器和 documentToInsertUpdate 中删除“其他”部分,它工作正常。
我如何处理第二部分,即
mongodb - 如何在 MongoDB 中聚合对象数组中的值
我存储来自汽车的文档,并希望将所有梅赛德斯汽车的温度作为数组获取,查询应该如何在 Mongodb 中进行?
我想为所有梅赛德斯汽车选择温度并接收它。结果应该像 [20,50]
编辑:我的代码看起来像下面使用 JAVA 的 iam: