问题标签 [mongodb-java]

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 回答
439 浏览

playframework - 在morphia模型中保持拥有对象ID

我有两节课

如果我在电影上定义以下方法:

然后是 Session 上的方法:

我可以保存 Movie & Session 对象,但是当我尝试使用 Movie.findById 检索电影时,我得到了一个堆栈跟踪(如下)

但是,如果我没有在会话中设置 movieId 字段,那么我可以成功检索拥有的电影。

有什么想法我可能做错了吗?

0 投票
1 回答
7911 浏览

mongodb - 通过 Spring Data 连接到 MongoDB 时出现异常

我正在开发一些测试程序,我已经完成了与http://static.springsource.org/spring-data/data-document/docs/1.0.0.M2/reference/html/#mongoSpringData MongoDB中提到的相同.core . 但它显示了例外:

但是在运行 MongoApp.java 之后,我得到了以下异常:

0 投票
1 回答
364 浏览

java - gwt + mongo (morphia) = IncompatibleClassChangeError

Gwt -> RPC -> MongoDB (Morphia)

MyCodeImpl.getDataSource():

第 42 行:Mongo db = new Mongo("localhost");

没有 GWT 可以正常工作。为什么不能与 GWT 一起使用?com.mongodb.DbDecoder 看起来有问题......有什么建议吗?

0 投票
1 回答
1860 浏览

spring - 进行 $set 更新时未使用 Spring MongoDB 自定义转换器?

简单示例之前的简短摘要:

  • 插入新文档是可以的,意思是它使用我的自定义转换器
  • 更新现有文档是不行的,这意味着它不使用我的自定义转换器

我的部门:

这是我的班级,它有自己的转换器

以下是转换器:

myDomain 有一个List<MyClass<?>> myClasses, 这很好用,因为正在使用自定义转换器:

从调试输出中可以看出:

结果来自我的 db.myCollection.find().pretty(); :

插入操作一切正常...

但是当我像这样对现有文档进行 $set 更新时:

调试输出保持不变:

但结果就像没有使用自定义转换器,没有“_class”属性:

我目前的结论是:

  • 对于插入新文档,自定义转换器可以正常工作
  • 虽然对于更新,虽然似乎调用了自定义转换器(调试输出在那里),但它似乎使用默认的 MappingMongoConverter 来进行真正的更新。

我错过了什么吗?请分享你的想法..

0 投票
2 回答
12604 浏览

java - 用于类继承的 Spring Data MongoDb

我想将不同的数据存储到 MongoDb 中的一个集合中,并让 Spring 数据 bean 具有适当的字段..

对不起,我跳过了细节。

父 bean:

孩子们:

所以,mongo中有以下文件

当我获取数据时,没关系。但是,当我从 CrudRepository 为 B调用save方法时,它会重写所有数据并且我丢失了 C。

我只知道使用增量更新创建自定义保存方法的一个好选择,例如

但有反思。

你还有其他建议吗?

提前致谢。

0 投票
2 回答
302 浏览

mongodb - 如何从 mongoDB 中检索任何元素值?

假设我有以下收藏:

如何检索 id1 、 name 、 id 、label 或任何其他元素?

我能够获取 _id 字段、DATA(完整数组),但不能获取 DATA 中的内部元素。

0 投票
1 回答
1342 浏览

java - MongoDB 对象实例

我之前没有任何数据库经验,但我必须将它用于我正在构建的应用程序,我选择了 MongoDB。

现在一切正常,但是每次我必须向数据库发出请求时,我都会创建一个新的 Mongo 对象,我知道这是错误的。

所以我想问问并了解正确的方法是什么,我在一个名为的类中有如下代码MongoDbConnnection

因此,每次我需要进行查询时,我都会这样做Mongo m = MongoDbConnnection.getMongo();并继续前进。

它是否正确?

我也对何时关闭连接感到困惑,因为我有另一个扩展HttpServlet并响应 GET 的类,每次有人请求该 url 时,我都必须查询数据库并返回信息。如果我在响应一个请求后立即关闭,如果其他人在此之后再次请求它怎么办。然后我必须再次创建一个新的 Mongo 对象?

换句话说,我知道 Mongo 实例维护一个连接轮询,所以当我调用 m.close() 时,我只是替换我使用的连接,还是我将 object 设置m为 null?

0 投票
1 回答
1965 浏览

java - 如何使用@DbRef 注解引用GridFSFile(spring data mongodb)

我有一个春天@Documentobject Profile

我想像这样引用 GridFSFile :

该文件被写入另一个集合类型 GridFS。

我总是有一个java.lang.StackOverflowError当我设置profile.setFile(file);

我不明白,如果有人有想法引用我感兴趣的文件

谢谢,泽维尔

0 投票
2 回答
591 浏览

mongodb - 在没有安装 mongo 的机器上执行 Mongo mapreduce 作业

我有一组需要从我的 Java 程序执行的 mapreduce 作业。现在我正在通过 Java Process 调用执行它们

有没有办法可以在没有 Mongo 的机器上执行这些 mapreduce 任务。mongo Java 驱动程序是否支持这样的功能?

谢谢!

0 投票
1 回答
2466 浏览

mongodb - 为什么mongo在保存时会修剪空格?

我注意到 MongoDB 在将文档保存到集合时将多个空间折叠在一起(到一个空间中)。它不仅仅是前导和尾随空格,而是任何空格序列 - 并且只有空格,而不是所有空格(仅使用空格和制表符进行测试)。使用 Java 驱动程序和交互式 mongo shell 时会发生这种情况,所以我猜这是数据存储本身的“功能”。

诚然,我不喜欢我的价值观中有多余的空白,我在剥离它们的过程中发现了这一点。但是,这种行为似乎很奇怪,因为通常期望数据存储不会“烹饪”或以其他方式更改超出符合底层存储约束的最低限度的数据。否则(未向用户/开发人员声明)可能会导致数据或精度丢失。此外,为什么要折叠空间而不是在头部和尾部完全修剪它们 - 为什么在非空间字符之间折叠它们?

我错误地启用了此功能,还是默认启用?我在JIRA上找不到任何东西。这对我来说似乎是一个错误,但也许我只是很特别。MongoDB 版本 2.0.2