Spring Mongo 带日期的条件查询

Spring Mongo criteria query with dates

我有一个带有在线和离线日期的产品 pojo

我使用以下查询获取 online 日期为 Nulloffline 日期为 Null 的所有产品。但是下面的查询只有returns我当both online and offline date are null.

query.addCriteria(Criteria.where(Product.IS).is(is).andOperator( Criteria.where(Product.OFFLINE_DATE).is(null).orOperator(Criteria.where(Product.ONLINE_DATE).is(null))));

有什么线索吗?

使用上述查询对象,您正在创建类似于

的 mongo 查询
{ "productId" : "1" , "$and" : [ { "offlineDate" :  null  , "$or" : [ { "onlineDate" :  null }]}]}

你想查询的地方类似于{ "productId" : "1" , "$and" : [ { "$or" : [ { "offlineDate" : null } , { "onlineDate" : null }]}]}

为 orOperator 创建一个 Criteria 对象并将其放入 andOperator:

 Criteria orOperator = new Criteria().orOperator(Criteria.where(Product.OFFLINE_DATE).is(null),
            Criteria.where(Product.ONLINE_DATE).is(null));
    query.addCriteria(Criteria.where(Product.IS).is(is).andOperator(orOperator));

希望对您有所帮助。