我有一个MongoDB集合,其中包含以下字段的文档:
我想用MongoRepository编写一个方法来查找日期在一系列日期中的所有文档,并且offerType包含列表中提供的字符串之一
文件:
我想要:
在上一个示例中,我将获得文档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以搜索可以包含作为参数传递的列表值之一的字段
此实现有什么问题?有更好的方法实现此查询吗?
我们有另一个使用查询的选项
@Query(value = "{ 'groupId' : ?0 , 'user.$id' : {$in: ?1} }", delete = true)
List<GroupUser> deleteUserInGroup(String groupId, List<ObjectId> userId);
你可以试试看。
这比我想象的要简单。我为感兴趣的人发布了一个答案:
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
。
我正在尝试使用对mongo存储库进行自己的查询: 我想实现的是使用关键字搜索日期日志。上面抱怨了一个解析错误: 如果我将ISODate(?0)替换为简单的它生成包含未知实例的第1页,共0页 字符串 我怎么才能把我的约会对象弄进去?
我在GET api中有多个查询参数(如姓名、年龄、性别、位置等…n个数字)。现在我需要使用这些查询值来查询我的mongo数据库。现在用户可以发送从0到n的查询参数。 我正在尝试使用类似的东西 或者 但问题是,考虑到用户可以发送的所有排列和组合,我将不得不编写多个查询。有没有更好的方法来做到这一点?
我无法在Spring Data MongoDB中将值初始化为false,因此在我的查询中,我想搜索字段设置为false或null的文档。 以下片段似乎不起作用:
通常用于App中展示当前用户的历史咨询列表,比如消息盒子的展示: 一、咨询列表说明: 1、获取所有咨询入口的最后一条消息的总和,以接待组settingid为维度; 2、能区分该条消息的状态(已读、未读以及未读数); 3、返回的数据是按照最后一条消息的时间对咨询列表倒序排序。 二、API接口 方法一:+ (NSArray *)ntalker_getConsultHistoryListCount:(N
问题内容: 我正在使用MongoRepository将Spring Data与MongoDB结合使用。 我想知道是否有可能使用查询注释通过过滤器进行删除。我一直在这里和谷歌,我找不到任何文档。 问题答案:
它可以工作,但我想知道它访问mongo的确切查询 怎么做? 我尝试在以下属性中添加一些配置: 也不工作。 有人能帮忙吗?