【发布时间】:2019-07-07 04:31:56
【问题描述】:
我有这个 MongoDb 查询:
db.getCollection('user').find({
$and : [
{"status" : "ACTIVE"},
{"last_modified" : { $lt: new Date(), $gte: new Date(new Date().setDate(new Date().getDate()-1))}},
{"$expr": { "$ne": ["$last_modified", "$time_created"] }}
]
})
它可以在 Robo3T 中使用,但是当我将它作为自定义查询放入 spring boot 时,它会在项目启动时引发错误。
@Query("{ $and : [ {'status' : 'ACTIVE'}, {'last_modified' : { $lt: new Date(), $gte: new Date(new Date().setDate(new Date().getDate()-1))}}, {'$expr': { '$ne': ['$last_modified', '$time_created']}}]}")
public List<User> findModifiedUsers();
我在春季尝试使用Criteria 进行查询:
Query query = new Query();
Criteria criteria = new Criteria();
criteria.andOperator(Criteria.where("status").is(UserStatus.ACTIVE), Criteria.where("last_modified").lt(new Date()).gt(lastDay), Criteria.where("time_created").ne("last_modified"));
但它不起作用,它返回所有用户,就像没有最后一个条件不等于 last_modified 和 time_created。
有谁知道可能是什么问题?
【问题讨论】:
标签: spring mongodb spring-boot mongorepository