问题标签 [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 投票
1 回答
997 浏览

java - 使用 Java 驱动程序运行聚合 - MongoDB

使用 MongoDB shell 我使用:

如何使用 Java 驱动程序 ( 2.14.1 ) 进行相同的查询?我尝试:

首先,我为舞台创建了一个 DBObject $match

然后我创建一个BasicDBList

这是$project阶段:

最后我创建了聚合管道:

$Match舞台作品,但$project没有。

我收到一个错误:"errmsg" : "invalid operator '$contribs'" , "code" : 15999

0 投票
2 回答
4653 浏览

java - 如何在 MongoDB 3.2 文档中插入对象?

我有一个User

我也有简单的 POJOComment

我希望如何将新用户插入到收藏中,并带有一些关于他的评论,如下所示:

不幸的是,我有例外:

我知道 MongoDB 的 Java 驱动程序无法将我的对象转换为Document它需要某种转换器。我也知道Codec,CodecRegistryCodecProvider接口。顺便问一下,有没有更简单的方法可以将对象转换为 mongo 文档?你能告诉我例子我该怎么做吗?谢谢你。

0 投票
0 回答
506 浏览

mongodb - 使用正则表达式在 Mongo db 中进行嵌套数组搜索

在嵌套数组中搜索的查询是什么:

我尝试使用以下正则表达式 Array1.field1.nestedArray1.content

但我无法得到正确的结果..上面的查询格式是否正确

0 投票
3 回答
5884 浏览

java - 从 MongoDB 读取数据

我对 MongoDB 很陌生。我有一个里面有很少文件的集合。下面是一个例子。

我想将所有条目的标记获取到一个数组中以显示它们并使用java进行一些计算。到目前为止,我已经完成了阅读文档并显示所有数据的工作。但是我找不到一种方法来仅从中获得“标记”。

到目前为止,我所知道的关于使用 Java 从 MongoDB 读取数据的所有信息。请帮助我仅将文档中的标记字段获取到数组中。
谢谢你。

0 投票
2 回答
494 浏览

java - 更改文档结构后更新 mongoDB java 驱动程序中预先存在的文档

我有一个 playerdata 数据库,其中包含该程序以前版本中的一些预先存在的字段。示例过时的文档:

但是在新版本下生成的播放器文档应该是这样的:

问题是,如果我尝试查询我会得到一个 NullPointerException playercurrency,因为. 我想在不干扰任何其他可以存储在. 我使用示例尝试了一些代码:fooplayercurrencyfooplayercurrencyfoofoo$exists

我的想法是它更新只是playercurrency因为它不存在并且它会playername因为它存在而单独存在。我可能使用存在严重错误,如果是这样,请告诉我,因为这是我的第一个 MongoDB 项目之一,我想尽可能多地学习。

0 投票
1 回答
10999 浏览

java - 如何检查 MongoDB 连接是否与 Java 建立?

在我的应用程序中,MongoDB 3.2.4 在自定义端口上运行,我想实现我的应用程序将尝试在自定义端口上访问 MongoDB 的逻辑,如果失败,它将使用默认27018端口。

为此,我使用以下代码:

问题是这个异常没有被捕获。虽然 MongoDB 抛出了以下异常:

com.mongodb.MongoSocketOpenException:在 com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114) 在 com.mongodb.connection.SocketStream.open(SocketStream.java:63) 在 com.mongodb.connection 的异常打开套接字。 java.lang.Thread.run(Thread.java:745) 处的 DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:128) 原因:java.net.ConnectException:连接被拒绝:连接在 java.net.DualStackPlainSocketImpl.waitForConnect(Native方法)在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java. net.AbstractPlainSocketImpl。连接(AbstractPlainSocketImpl.java:188)在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java :589) 在 com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) 在 com.mongodb.connection.SocketStream.open(SocketStream.java:58) ... 还有 3 个

我的try-catch表情无法捕捉到这个异常。

我尝试了多种方法,例如捕获:

  • Exception
  • RuntimeException
  • MongoSocketOpenException
  • MongoException
  • MongoCommandException

它们都不起作用。

我的问题:

  1. 如何检查 MongoDB 连接是否已建立?
  2. 怎样才能捕捉到异常MongoSocketOpenException
0 投票
1 回答
1453 浏览

java - How to execute queries with both AND and OR clauses in MongoDB with Java?

I want to execute query in MongoDB 3.2 with Java Driver 3.2, which contains both $and and $or clauses at the same time.

With the reference, I tried the following approach:

Where the criteria1 and criteria2 should be connected with $or while within criteria1 clause the $and should be applied.

The problem is that in MongoDB Java Driver 3.2 there is such no method and I get the Cannot resolve method find(com.mongodb.DBObject) error.

My question:
How can I compose a query such as (A && B) || (X && Y) in MongoDB Java Driver 3.2?

0 投票
1 回答
788 浏览

java - 使用java驱动程序对大数据进行Mongo聚合查询?

我正在使用spring批处理框架来处理mongo db中的大量数据并再次存储在mongo db中

代码如下:

对于较少的数据(我已经在 100k 上进行了测试),聚合框架工作正常,但对于 2M,它给出了超过 16 MB 限制的例外情况。

我不想使用 $out 操作,因为首先它不是必需的,而且似乎没有任何 API 可以在 spring data mongo 中使用 $out

我也读过返回游标,这将允许超出大小限制,但似乎没有任何支持它的 spring 数据 mongo API。

Mongo DB 版本:2.6

Mongo 驱动程序版本:3.2.0

0 投票
1 回答
93 浏览

mongodb - 通过java驱动程序访问mongo db时,读取时的套接字超时是否也会关闭连接?

我正在通过java驱动程序(v2.10)(通过spring数据)访问mongo db(v2.6)。当应用程序收到套接字超时异常时,底层连接是否也关闭了?

0 投票
2 回答
714 浏览

java - MongoDB 3,java驱动,全文搜索,怎么做?

您可以看到如何在 mongodb 2 中使用 java 驱动程序进行全文搜索

如何在 mongodb 2 中使用 java 驱动程序,全文搜索

但在 mongodb 3 中这不起作用,有人知道如何使用 java 驱动程序/mongodb 3 进行全文搜索吗?