我有一个具有在线和离线日期的产品pojo
我使用以下查询来获取online
日期为Null
或offline
日期为Null
的所有产品。但以下查询仅在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))));
任何线索?
答案 0 :(得分:1)
使用上面的Query对象,您将创建类似于
的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));
我希望这会有所帮助。