问题标签 [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.

0 投票
0 回答
612 浏览

mongodb - 使用 Mongo Java 驱动程序(3.x)从 Mongo DB 查询后为 Java 变量赋值

如何使用 Mongo Java Driver 将从 MongoDB 查询的值分配给 Java 中的变量?

从数据库查询后,我必须为 usr1count(variable) 分配一个值。如何分配存在于 Integer.parseInt(document.getString("count").toString()); 中的值

0 投票
1 回答
1612 浏览

java - 如何使用 MongoDB Java 驱动程序返回正确的数据类型

下面是我正在使用的代码 -

程序输出:_id 值:0.0

从 mongo shell 的图像集合中输出

db.images.find();

我的问题:从 mongo shell 我可以看到这些值是 Long 或 Integer,但是当我使用 find 方法从 java mongo 驱动程序查询时,它正在打印 Double。有谁知道为什么会这样。

我正在使用的 Mongo 驱动程序:3.0.0

0 投票
6 回答
32323 浏览

java - 使用 jdbc 驱动程序连接到 MongoDB

目的是通过JAVA连接MongoDB远程服务器:

尝试过 Unity_trial.Jar、mongo_version.jar 文件,但出现错误是'mongodb.jdbc.MongoDriver' classNameNotFound。

如果我评论 class.forname 行,下一个错误是

格式不正确。不知道我在哪里犯了错误。提前感谢您的帮助。

0 投票
2 回答
7076 浏览

java - “com.mongodb.MongoSocketReadException”和“com.mongodb.MongoTimeoutException”的解决方案是什么

我使用 mongo-java-driver 3.1.0。JAVA和MongoDB连接没有问题。我可以使用 JAVA 从 MongoDB 获取数据并将数据写入 MongoDB。

但是当我尝试写入更多数据时,我的 java 控制台出现了这个错误。我认为当套接字连接持续超过 30 秒时,MongoDB 客户端会崩溃。直到 30 秒,部分数据被插入到 MongoDB (myCollection) 首先我得到;

com.mongodb.MongoSocketReadException:过早到达流的末尾

接着

com.mongodb.MongoTimeoutException:在等待与 ReadPreferenceServerSelector{readPreference=primary} 匹配的服务器时,在 30000 毫秒后超时

我没有设置任何超时,所以它的超时应该是无限的。

有人可以帮忙吗

顺便说一句,在粉碎之后我无法再写入或获取任何数据。要写入数据,我必须重新启动“mongod”。

我为 if case 添加了 CHECKDATA_EXIST 方法(我的代码包括该方法)。我忘了补充。该方法检查 id 是否存在。

0 投票
3 回答
1041 浏览

spring - 无法使用 Spring 4.2 初始化类 MongoRepositoryConfigurationExtension - MongoDB

我正在尝试使用 Spring 4.2、spring-data-mongodb-1.8.0 和 spring-data-commons-1.11.0 构建一个应用程序。以下是运行时抛出的异常。

请帮忙。我已经坚持了两天了。

谢谢你的帮助。

控制台日志

spring-dispatcher-servlet.xml

lib 文件夹中的罐子

0 投票
0 回答
230 浏览

java - 为什么MongoDB查询变得缓慢

我设置了一个基于 MongoDB 的 Java Web 应用程序项目。本项目的DAO由MongoDB Java驱动实现;我没有使用 MongoDB 的 Spring Data。

我遇到了性能问题。如果应用程序向数据库发送查询,响应时间约为 17ms。但是如果我使用 Jmeter——它模拟了大约 300 个用户——90%Line 的响应时间大约是 1300 毫秒。响应时间是无法忍受的。我试图找出原因,但我不知道。

此外,还有MongoUri字符串:

查询就像对objectID, like 的查询db.collection.find( { _id: xxxx } )。另外,我在_id.

mongo.xml

谁能解释这里出了什么问题?

0 投票
1 回答
129 浏览

java - 将 POJO 变量命名为“public”

我正在使用 MongoDB,并且对使用 MongoDB Java 驱动程序 (v.3.0.2) 有严格的要求,我也无法以任何方式更改数据库的结构。

数据库中的一个文档包含一个名为“public”的字段,它是一个 POJO。

检索要显示的文档很简单,因为我只是将 BSON 文档集合直接转换为 JSON。但是,在 PUT/POST 上,将此属性更改为名称“public”以外的其他名称将导致架构更改,这是不允许的。

我计划在这一点上重命名 POJO 中的字段,但这意味着必须手动对 POST/PUT 中的对象进行水合,并手动构建 BSON 文档以获得正确的命名。

只是想看看是否有人遇到过类似的问题,是否有任何建议可以轻松解决这个问题,而不使用无关的映射框架?

谢谢。

0 投票
1 回答
401 浏览

java - Java MongoDB 如何使用 BasicDBList 作为 $in 参数

我有一个这样的 MongoDB 集合,其中包含游戏玩家的详细信息:

我想在一个数组中获取玩家的 ID。因此,例如,我这样做:

太好了,我有一个对象列表 ( com.mongodb.BasicDBList) ( )。但现在我想在新查询中使用该列表,例如,获取这些玩家的所有徽章。徽章收藏:ObjectIdorg.bson.types.ObjectId$in

在 Java 中:

这不起作用,因为userDetailIds包含ObjectId对象并且userDetailID是一个String字段。如何使用 BasicDBList 作为$in参数?或者:我可以得到一个StringID 数组而不是ObjectIds 吗?

谢谢!

PD。我不想遍历列表以将其转换为List<String>.

0 投票
2 回答
2245 浏览

java - Java MongoDB:使用 numberLong 字段进行查询

如何使用 mongoDB java 驱动程序在 mongoDB 中查询 numberLong 字段?

我根据这个 SO 帖子尝试了这个:Java Mongodb numberlong query但它不起作用。

我也试过了,article.getDate() 的返回类型为 Long 并且它不起作用:

new NumberLongJava 驱动程序中没有要使用的对象。

https://docs.mongodb.org/manual/core/shell-types/建议使用 NumberLong() 包装器,但它仅适用于 javascript shell,不适用于 java。

0 投票
1 回答
3384 浏览

java - MongoDb 数据库连接使用 java 和 3.0.0 版本的身份验证

我有 MongoConnectionUtils 这个文件我在 mongo-java-driver 下面有依赖

以前我使用的是 2.10 jar,但现在使用的是最新版本,我发现 db.getDB() 是一个已弃用的方法,而我发现了 getDatabase() 方法。所以现在我想用用户名和密码对数据库进行身份验证。但我没有找到 db.auth() 方法。请帮忙。