标签: spring-data-mongodb

如何在Spring Data MongoDB存储库中查询日期?

我的域名对象 -

Person{
    String name;
    Date born;
}
Run Code Online (Sandbox Code Playgroud)

我有一个PersonRepository

PersonRepository{
    @Query(value="{'born': {$gt: new Date(?0)} }")
    findPerson(Date bornAfter);
}
Run Code Online (Sandbox Code Playgroud)

我想抓住在某个约会后出生的所有人.但这不起作用.我错过了什么?mongodb控制台中"born"的日期格式如下

ISODate("2011-11-16T09:46:33.750Z")
Run Code Online (Sandbox Code Playgroud)

我试图在data-jpa源代码中寻找一个单元/集成测试.找不到任何东西.有人能指点我吗?

java spring mongodb spring-data spring-data-mongodb

11
推荐指数
1
解决办法
1万
查看次数

Spring Data:没有XML的MongoDB的Java配置

我尝试使用MongoDB访问数据Spring Guide.我无法弄清楚的是如何配置我的代码不使用默认服务器地址而不使用默认数据库.我已经看到很多方法可以用XML来完成它,但我试图保持完全没有XML的配置.

有没有人有一个例子来设置没有XML的服务器和数据库,并且可以很容易地集成到他们在Spring Guide中显示的示例中?

注意:我确实找到了如何设置集合(在此页面上搜索短语"我的文档将保存到哪个集合中").

谢谢!

与JPA春季指南相同的故事 - 如何配置数据库属性 - 但这是另一篇文章:)

java spring mongodb spring-data spring-data-mongodb

11
推荐指数
1
解决办法
1万
查看次数

如何查看Spring Data MongoDB生成的存储库实现?

Spring Data生成的存储库实现是什么时候?在编译时还是运行时?我可以看到Spring Data生成的实现存储库实现吗?

repository mongodb spring-data spring-data-mongodb

11
推荐指数
1
解决办法
2830
查看次数

Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

我有Java 8日期/时间字段的简单文档

@Document
public class Token {
    private Instant createdAt;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我希望坚持使用Spring Data MongoDB 1.5版.但是类型的字段java.time.Instant无法正确反序列化,因为MappingMongoConverter缺少java.time类的转换器.

在Spring 4中,我发现org.springframework.format.datetime.standard.DateTimeConverters了不同的Converters包括InstantToLongConverterLongToInstantConverter声明为私有静态类.

如何配置MongoTemplate使用它们将Instant字段映射到long?

java java-8 spring-data spring-data-mongodb java-time

11
推荐指数
1
解决办法
9556
查看次数

请使用 'MongoMappingContext#setAutoIndexCreation(boolean)' 或覆盖 'MongoConfigurationSupport#autoIndexCreation()' 来明确

我浏览了https://docs.spring.io/spring-data/mongodb/docs/2.2.0.RC1/reference/html/#mapping-usage和网络上的其他来源,但该解决方案对我不起作用.

我正在使用Spring Boot 2.2.2.RELEASESpring Data Mongo。在这个例子中,在模型/Pojo 字段级别我们使用

@Indexed(name = AppConstants.FIRSTNAME_INDEX, direction = IndexDirection.ASCENDING)
private String firstName;
Run Code Online (Sandbox Code Playgroud)

错误:

Please use 'MongoMappingContext#setAutoIndexCreation(boolean)' or override 'MongoConfigurationSupport#autoIndexCreation()' to be explicit.
However, we recommend setting up indices manually in an application ready block. You may use index derivation there as well.

> -----------------------------------------------------------------------------------------
> @EventListener(ApplicationReadyEvent.class)
> public void initIndicesAfterStartup() {
>
>     IndexOperations indexOps = mongoTemplate.indexOps(DomainType.class);
>
>     IndexResolver resolver = new MongoPersistentEntityIndexResolver(mongoMappingContext);
>     resolver.resolveIndexFor(DomainType.class).forEach(indexOps::ensureIndex);
> }
> ----------------------------------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

spring mongodb spring-data-mongodb spring-boot

11
推荐指数
1
解决办法
1万
查看次数

制作spring-data-mongodb多租户

去年八月sbzoom提出了一个解决方案,使弹簧的数据MongoDB的多租户:

"你必须创建自己的RepositoryFactoryBean.这是Spring Data MongoDB参考文档中的示例.你仍然需要实现自己的MongoTemplate并延迟或删除ensureIndexes()调用.但是你必须重写几个类来确保调用你的MongoTemplate而不是Spring."

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

java spring mongodb spring-data spring-data-mongodb

10
推荐指数
1
解决办法
7480
查看次数

Spring Data MongoDB和批量更新

我正在使用Spring Data MongoDB,并希望像下面描述的那样执行批量更新:http://docs.mongodb.org/manual/reference/method/Bulk.find.update/#Bulk.find.update

使用常规驱动程序时,它看起来像这样:

以下示例初始化项集合的Bulk()操作构建器,并将各种多更新操作添加到操作列表中.

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );
bulk.execute()
Run Code Online (Sandbox Code Playgroud)

有没有办法用Spring Data MongoDB实现类似的结果?

java mongodb spring-data-mongodb

10
推荐指数
2
解决办法
1万
查看次数

具有可分页的Spring自定义查询

我想在spring应用程序中实现分页.我知道使用存储库我们可以实现分页但我们不能编写自己的数据检索查询存储库中有限的方法也没有接受查询类的方法.

如果我们想编写自定义查询以从mongodb检索数据,我们必须使用mongotemaplete,因为我知道使用mongotemplate我们无法实现分页.

有没有其他方法可以实现分页以及db查询.任何人都可以帮助我.

spring mongodb spring-data spring-data-mongodb spring-boot

10
推荐指数
4
解决办法
2万
查看次数

Spring Data Mongodb存储库不能正确实现继承

有两种类型的实体,它们映射到单个MongoDB集合中的两个Java类:

@Document
public class Superclass { ... }

@Document(collection = "superclass")
public class Subclass extends Superclass { ... }
Run Code Online (Sandbox Code Playgroud)

和这些实体的两个存储库:

public interface SuperclassRepository extends MongoRepository<Superclass, String> {}
public interface SubclassRepository extends MongoRepository<Subclass, String> {}
Run Code Online (Sandbox Code Playgroud)

MongoRepositories不要正确处理实体的继承.在查询所有Subclass对象(例如SubclassRepository.findAll())时,结果集包含Superclass对象,这些对象是实例化的(或者至少已经尝试实例化),对于属于Subclass但不属于的一部分的字段具有空值Superclass.

预期的结果是SubclassRepository应该只返回Subclass对象,而SuperclassRepository应该返回SuperclassSubclass对象.它在Spring Data JPA中以这种方式工作.

有没有人遇到过这个bug并且有任何解决方法可以解决它?

java spring spring-data spring-data-mongodb

10
推荐指数
1
解决办法
4376
查看次数

ZonedDateTime与MongoDB

试着ZonedDateTimeMongoDB.我可以保存ZonedDateTime,MongoDB但是当我查看记录时,它有太多不必要的东西:

> "timestamp" : {
>             "dateTime" : ISODate("2016-12-13T13:45:53.991Z"),
>             "offset" : {
>                 "_id" : "-05:00",
>                 "totalSeconds" : -18000
>             },
>             "zone" : {
>                 "_class" : "java.time.ZoneRegion",
>                 "_id" : "America/New_York",
>                 "rules" : {
>                     "standardTransitions" : [ 
>                         NumberLong(-2717650800)
>                     ],
>                     "standardOffsets" : [ 
>                         {
>                             "_id" : "-04:56:02",
>                             "totalSeconds" : -17762
>                         }, 
>                         {
>                             "_id" : "-05:00",
>                             "totalSeconds" : …
Run Code Online (Sandbox Code Playgroud)

java spring mongodb spring-data-mongodb

10
推荐指数
2
解决办法
1万
查看次数