我有表名用户,我想让一些用户之间的用户 时间间隔。
我的用户表
user_id,updated_at
1 100
2 200
3 300
4 400
5 500
6 600
7 700
正常查询检查时间大于和小于以下:
db.users.find({"updated_at":{$gt:90,$lte:200}})
我有这个
的时间戳地图Map<Long,Long> timestamp: which contains values for greater than and less than time.
现在如果我在地图中传递值
timetampMap.put(90,200)
timetampMap.put(350,400)
timetampMap.put(560,700)
输出应该在查询之后
select * from users where (updated_at>90 && updated_at<=200)
select * from users where (updated_at>350 && updated_at<=400)
select * from users where (updated_at>560 && updated_at<=700)
user_id,updated_at
1 100
2 200
4 400
6 600
7 700
请按照上述要求帮助编写查询,我不想在代码中使用for循环。
答案 0 :(得分:0)
使用$or
db.users.find({ $or: [ { updated_at:{ $gt:90, $lte:200}}, { updated_at:{ $gt:350, $lte:400}}, { updated_at:{ $gt:560, $lte:700}} ] })
运算符
此查询正在执行或针对您的不同范围。
您可以在此处详细了解https://docs.mongodb.org/manual/reference/operator/query/or/