问题标签 [spring-data-mongodb]

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

mongodb - mongoDB 日志文件 getlasterror: 1, w: "com.mongodb.WriteConcern.REPLICAS_SAFE"

我们有 mongoDB 主从配置。我使用属性 com.mongodb.WriteConcern.REPLICAS_SAFE 更新了 spring mongoDB 模板驱动程序以了解副本。我在日志文件中收到以下错误。

[conn2788271] runQuery 调用 xxx.$cmd { getlasterror: 1, w: "com.mongodb.WriteConcern.REPLICAS_SAFE", wtimeout: 0 }

[conn2786380] 用户断言:14830:无法识别的 getLastError 模式:com.mongodb.WriteConcern.REPLICAS_SAFE

[conn2786380] command xxx.$cmd command: { getlasterror: 1, w: "com.mongodb.WriteConcern.REPLICAS_SAFE", wtimeout: 0 } ntoreturn:1 keyUpdates:0 reslen:182 0ms

似乎错误来自此文件 https://bitbucket.org/wesc/debian-mongodb/src/97846fbc9d31/mongodb-2.0.2/db/repl_block.cpp

如果我遗漏了什么,有什么线索吗?

0 投票
2 回答
15170 浏览

mongodb - 与 skip() 和 limit() 一起使用的 Distinct() 命令

我的 MongoDB 集合中有这些项目:

我想查询 x 的不同值(即[1, 2, 3, 4, 5, 6, 7])......但我只想要其中的一部分(类似于我们可以使用 skip(a)和限制(b))。

我如何使用 MongoDB 的 java 驱动程序(或者如果可能的话使用 spring-data-mongodb)来做到这一点?

0 投票
1 回答
8550 浏览

mongodb - 如何更新与spring数据中的条件匹配的数组中的嵌套对象-mongodb?

我在 mongodb 中有一个从这个 java 模型创建的文档:

因此,我的文档将如下所示:

现在我想使用以下代码更新用户 ID = 001 的用户的用户名:

问题是它只更新第一条评论(带有文本=“Hello Comment1”的评论)。

有人可以帮我吗?

我对更新功能有误解吗?

谢谢。

PS。对不起我的英语:D

0 投票
0 回答
4438 浏览

mongodb - MongoDB FindAndModify 极慢

我正在使用 mongodb 并且在速度方面遇到了一些问题。我的收藏变得更大,现在包含大约 7.000.000 件物品。因此,findAndModify 查询大约需要 3 秒。我在查询字段上有一个索引(在我的例子中是“链接”,它是一个数组)。有没有人看到一个大失败或低效的代码(见下文)。

先感谢您!

0 投票
1 回答
9394 浏览

junit4 - Spring Data MongoDB:使用存储库进行单元测试

应该如何使用 Spring Data MongoDB 中的存储库方法构建一些测试?我想为我的测试设置测试数据库,因为我不想为此目的使用生产数据库。这应该是可能的,但我不知道。这是我的应用程序上下文:

假设我有一个简单的存储库,如下所示:

其中 LocationRepositoryImpl 是为某个 Location(域对象)类实现我的所有自定义方法的类。我的测试类看起来像:

我试图在我正在运行的测试中嵌入一个 MongoDB 实例(如此所述),但它不起作用:与测试数据库的连接已建立,但 mongo 模板似乎无法被覆盖,因为所有保存方法都将数据插入到“生产”数据库。

我正在使用 Spring 3.2.0 和 Spring Data Mongo 1.1.0.RELEASE。我正在使用 Junit 进行测试。

有什么建议么?

先感谢您。

0 投票
0 回答
480 浏览

spring - Spring Data Mongo 无法正确处理实体继承

我在我的项目中使用 Spring Data Mongo,如下所示:

  1. Spring Data MongoDB 1.2/ Spring Data Commons 1.5
  2. 春季 3.2.2 发布
  3. MongoDB / QueryDSL 2.9/ Mongo Java 驱动程序 2.10.1

案例一: @Id 来自 Spring Data Commons,@Document 来自 Spring Data Mongo。

我没有使用 Spring Data Repostory api 或 QueryDSL 之一,我无法按用户获取头像数据。

全部返回空集合(当然里面有一些数据)。

案例2:如果我第一次删除@DBRef,在我插入头像和用户后,它可以工作,但是当我更新用户中的数据时,然后按用户获取头像,返回空列表。

案例3:将用户更改为字符串(用户id),它可以工作。

这里对 MongoDB 的 java 建模有什么建议吗?谢谢。

0 投票
1 回答
1479 浏览

spring-data - Spring-data @Query 注解和接口

Spring-data-mongodb 1.1.2-Released (Spring-data-common-core 1.4.1.Released)

我在使用带有接口的@Query 注释时遇到了一些麻烦。例如,如果我定义了以下接口:

并定义了以下存储库:

尝试查询时出现以下异常:

如果我的 @Query 更新为:

如果我从界面中删除 getName() 函数,这也不会发生。

有没有人遇到过这个问题,可以告诉我我做错了什么或者这是否是一个已知问题?我将在 Spring-data 项目中打开一个 JIRA。

0 投票
1 回答
1715 浏览

java - 使用 Spring Data 和 MongoDB 解析子文档类型

我在尝试解析属性表达式时遇到了 Spring Data 存储库错误:

以下是相关部分Contract

Code是由 实现的接口CodeImpl。它包含一个属性bindings,其中有一个 getter 和 setter Code。因此,查询的属性表达式旨在查找具有包含给定绑定的嵌套代码文档的合同。到目前为止,一切都很好。

但是,问题是IllegalArgumentException被抛出:

调试那段代码表明 Spring Data 正在分解表达式并确定存在 type 的属性Code。但是,因为Code是一个接口,所以它没有列出任何属性。

有没有办法提示Code具有此属性或该属性CodeImpl的实际类型的Spring Data code?我很惊讶该库没有尝试解析接口的 getter 或 setter。

这是使用 spring-data-commons 1.5.1.RELEASE 和 spring-data-mongodb 1.2.1.RELEASE。

感谢帮助。

0 投票
3 回答
6348 浏览

spring-data - QueryDSL删除方法

我正在使用带有 QueryDSL 2.9.0 的 spring-data-mongodb 1.2.0。

为什么没有QueryDslPredicateExecutor方法delete(Predicate predicate)

有解决方法吗?

0 投票
4 回答
10766 浏览

java - 制作 spring-data-mongodb 多租户

在去年 8月的一篇文章中, sbzoom提出了一种使 spring-data-mongoDB 多租户的解决方案:

“您必须制作自己的 RepositoryFactoryBean。这是Spring Data MongoDB Reference Docs中的示例。您仍然需要实现自己的 MongoTemplate 并延迟或删除 ensureIndexes() 调用。但是您必须重写一些类来确保调用您的 MongoTemplate 而不是 Spring 的。”

有没有人实现这个或类似的东西?