Java mongoresposition查询问题

Java mongoresposition查询问题,java,spring,spring-data,spring-data-mongodb,Java,Spring,Spring Data,Spring Data Mongodb,我正在使用MongoRepository,并创建一个查询。 也许这是一个愚蠢的问题,但我找不到解决办法。 我有这个@Query: @Query("{'offerConfiguration.initOffer' : {'$lt' : ?0}, 'offerConfiguration.endOffer' : {'$gt' : ?1}, 'offerConfiguration.offerType': ?2, " + "$or: [{transactionStatus:'PAYPAL_D

我正在使用MongoRepository,并创建一个查询。 也许这是一个愚蠢的问题,但我找不到解决办法。 我有这个@Query:

@Query("{'offerConfiguration.initOffer' : {'$lt' : ?0}, 'offerConfiguration.endOffer' : {'$gt' : ?1}, 'offerConfiguration.offerType': ?2, " +
        "$or: [{transactionStatus:'PAYPAL_DONE'}, {transactionStatus:'PAYMILL_DONE'}]}")
我的理解是,我试图找到日期介于两个日期之间的所有文档(该部分有效),报价类型,比如说是产品,交易状态是PAYPAL_DONE或PAYMILL_DONE。 问题是,如果我放置transactionStatus过滤器,结果将提供与我指定的offerType不同的文档。只要我理解这部分“'offerConfiguration.offerType':?2”是一个AND,所以如果不是真的,我们就不会收到任何文档。
我做错了什么

您是否尝试在mongo shell上运行此查询?结果是什么?相同的结果:(我不知道我做错了什么!当查询有$or时,mongo并行执行n个查询,然后合并结果。那么,如果您查询以下内容,结果是什么:{“offerConfiguration.initOffer”:{“$lt”:?0},“offerConfiguration.endOffer”:{“$gt”:?1},“offerConfiguration.offerType”:?2,“交易状态:'贝宝完成'}?