问题标签 [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.
mongodb - Spring数据MongoDb:MappingMongoConverter删除_class
默认MappingMongoConverter为数据库中的每个对象添加一个自定义类型键(“_class”)。所以,如果我创建一个人:
并将其保存到数据库:
mongo 中的结果对象将是:
问题:
将 Person 类移动到不同的命名空间有什么影响?
是否可以不使用“_class”键污染对象;不为 Person 类编写唯一的转换器?
java - 如何在 Spring Data MongoDB 存储库中查询日期?
我的域对象 -
我有一个 PersonRepository
我正在尝试获取在某个日期之后出生的所有人员。但这不起作用。我错过了什么?mongodb 控制台中“出生”的日期格式如下所示
我试图在 data-jpa 源中为此寻找单元/集成测试。找不到。有人可以指出我吗?
mongodb - 使用 Spring Data Mongodb,是否可以在不拉取和迭代整个集合的情况下获得字段的最大值?
使用mongoTemplate.find()
,我指定一个可以调用的查询.limit()
或.sort()
:
.limit()
返回一个Query
对象
.sort()
返回一个Sort
对象
鉴于此,我可以说 Query().limit(int).sort(),但这不会执行所需的操作,它只是对有限的结果集进行排序。
我也不能调用 Query().sort().limit(int) 因为 .sort() 返回一个 Sort()
那么使用 Spring Data,我如何执行以下如 mongoDB shell 中所示的操作?也许有一种方法可以传递我还没有找到的原始查询?
如果需要,我可以扩展 Paging 界面......只是似乎没有任何帮助。谢谢!
spring-data-mongodb - 来自 spring mongo 的 dropDatabase
我想在我的集成测试之前在我的 mongo 中删除数据库。是否可以通过 spring mongo 做到这一点?
如果它现在不可用,是否可以从 spring mongo 以某种方式获取 com.mongodb.DB 对象,所以我可以调用它的 dropDatabase() ?
java - 如何使用 Spring 的 MongoTemplate 和 Query 类检索字段子集?
我希望能够执行以下控制台命令以返回仅填充了一部分字段但使用 SpringMongoTemplate
类的所有行:
控制台命令
Mongo模板
有关投影(子集)查询的信息可以在 MongoDB 手册中找到。
java - spring-data-mongo - 可选查询参数?
我将 spring-data mongo 与基于 JSON 的查询方法一起使用,并且不确定如何在搜索查询中允许可选参数。
例如 - 说我有以下功能
- 但我不想应用名称正则表达式匹配,或者如果将 NULL 值传递给方法,则不应用日期范围限制。
目前看来我可能必须使用 mongoTemplate 构建查询。
有没有其他选择 - 或者使用 mongoTemplate 是最好的选择?
谢谢
java - spring-data-mongodb 在一个 Mongo 实例中连接多个数据库
我正在使用最新的 spring-data-mongodb (1.1.0.M2) 和最新的 Mongo Driver (2.9.0-RC1)。我有一种情况,我有多个客户端连接到我的应用程序,我想在同一个 Mongo 服务器中为每个客户端提供自己的“模式/数据库”。如果我直接使用驱动程序,这不是一项很难完成的任务:
看,轻松。但是 spring-data-mongodb 不允许使用多个数据库的简单方法。建立连接的首选方法Mongo
是扩展AbstractMongoConfiguration类:
您将看到您覆盖了以下方法:
所以它迫使你使用一个数据库名称。然后您构建的存储库接口使用传递给类的 MongoTemplate 中的数据库名称SimpleMongoRepository
。
我到底会在哪里粘贴多个数据库名称?我必须创建多个数据库名称、多个MongoTempate
s(每个数据库名称一个)和多个其他配置类。这仍然没有让我的存储库接口使用正确的模板。如果有人尝试过这样的事情,请告诉我。如果我弄清楚了,我会在这里发布答案。
谢谢。
java - Spring Data MongoDB 存储库查询连接如何工作?
当我创建一个 Spring Data 存储库的方法时,findByName(…)
一切正常。但是当使用findByField1AndName(…)
Spring Data 时,MongoDB 只为最后一个参数生成查询:
但我预计它会产生
有什么问题?请帮忙。
UPD1:如果有人遇到这样的问题,您可以使用@Query 注解手动构建您的查询,示例如下:
spring - MongoDB Lifecycle 事件访问 MongoTemplate
我正在尝试使用 Spring Data Mongodb 为我的 mongodb 文档实现版本控制系统。我以为我会利用 Mongo 生命周期事件
我想做的是收听onBeforeSave
并获取文档的原始版本,并获取两者之间的差异。
我遇到的问题是我无法获得对 mongoOperations 的引用。它不断创建循环引用。我是否@Autowire:
自动线注入
蒙哥配置:
听众:
或使用Setter 注入
二传手注入
蒙哥配置:
听众:
在生命周期事件中处理文档版本控制对我来说很有意义。我用 PHP/Doctrine/Mongo 做了类似的事情
在 Doctrine 的情况下,我在生命周期回调中获得了对 Document Manager 的引用。有什么线索我可以用 Spring Data 做同样的事情吗?
java - Spring Data MongoDB Cross-Store 插件和 JPA PrePersist 和 PreUpdate
我们有一个具有以下设置的应用程序:
Java 6.0 Spring Data JPA 1.1.0.RELEASE Spring Data MongoDB 1.0.2.RELEASE Spring Data MongoDB Cross-Store 1.0.2.RELEASE Hibernate JPA 2.0
我们在这个应用程序中有几个使用 JPA PrePersist、PreUpdate、PostPersist 和 PostUpdate 注释的类。下面给出一个例子。
一旦我们为跨存储插件打开 AspectJ weaving,Spring 应用程序上下文就无法加载并出现错误:
我发现错误的根本原因是 Aspect MongoDocumentBacking 将额外的 PrePersist 和 PreUpdate 方法编织到实体类中。由于这些类已经有带有这些注释的方法,Hibernate Entity Manager 无法验证这些类。
是否有关于跨商店插件应如何与具有使用 JPA 注释的现有代码的应用程序一起使用的任何指导?