gpt4 book ai didi

java - 查询 mongoRepository 列表

转载 作者:行者123 更新时间:2023-12-02 06:16:12 25 4
gpt4 key购买 nike

我有一个 MongoDB 集合,其中包含具有以下字段的文档:

  • 日期(日期对象)
  • 报价类型(str)

我想使用 MongoRepository 编写一个方法来查找日期范围内的所有文档,并且 OfferType 包含列表中提供的字符串之一

<小时/>

示例

文件:

  1. 日期:2019 年 10 月 4 日,offerType:offer1
  2. 日期:2019 年 4 月 11 日,offerType:offer3
  3. 日期:2019 年 4 月 15 日,offerType:offer2
  4. 日期:2019 年 4 月 15 日,offerType:offer1

我想要:

  • 日期在 2019 年 4 月 9 日至 2019 年 4 月 12 日之间
  • 以下优惠:优惠 1、优惠 3

在前面的示例中,我将获取文档 1 和 2。

<小时/>

我的代码

我使用 MongoRepository 和一个自定义对象,其中包含我需要的字段:

import java.util.Date;
import java.util.List;

import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface ReportVocalOrderRepository extends MongoRepository<ReportVocalOrder, String> {

List<ReportVocalOrder> findByDateBetween(Date startDate, Date endDate, Pageable pageable);

List<ReportVocalOrder> findByDateBetweenAndOfferTypeContaining(Date startDate, Date endDate, List<String> offers, Pageable pageable);


}

这是文档类:

@JsonInclude(Include.NON_NULL)
@Document(collection = Constants.Mongo.Collections.VOCAL_ORDER_REPORT)
@ApiModel
public class ReportVocalOrder {

@Id
private String id;

private Date date;
private String offerType;
public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}
public String getOfferType() {
return offerType;
}

public void setOfferType(String offerType) {
this.offerType = offerType;
}
}

MongoRepository 的第一个方法工作正常;第二个返回一个空列表。
问题是查询 mongoRepository 以搜索可以包含作为参数传递的列表值之一的字段
这个实现有什么问题吗?有更好的方法来实现这个查询吗?

最佳答案

这比我想象的要简单。我为感兴趣的人发布答案:

import java.util.Date;
import java.util.List;

import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface ReportVocalOrderRepository extends MongoRepository<ReportVocalOrder, String> {

List<ReportVocalOrder> findByDateBetweenAndOfferTypeIn(Date startDate, Date endDate, List<String> offers, Pageable pageable);


}

所以重点是使用关键字In

关于java - 查询 mongoRepository 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com