0
我在文档中有一个日期。如何查询不超过7天的所有文档。我不能假定请求者机器和数据库上的时间是同步的。按日期查找或汇总
我在文档中有一个日期。如何查询不超过7天的所有文档。我不能假定请求者机器和数据库上的时间是同步的。按日期查找或汇总
您可以使用 “serverStatus” 命令,在服务器日期时间:
在蒙戈外壳:
server_time = db.adminCommand("serverStatus")['localTime'].getTime();
db.mycollection.find({ "change_date": { $gt: new Date((server_time) - 7 * 24 * 60 * 60 * 1000) }})
在Java:
MongoClient mongoClient = new MongoClient();
MongoDatabase database = mongoClient.getDatabase("dbname");
Document serverStatus = database.runCommand(new Document("serverStatus", 1));
Instant server_time = (Instant) serverStatus.get("localTime");
但这意味着做两部分。首先得到时间,然后发现它,这可能是不同步的。如何做到这一点,作为一个查询的一部分。 –
提示:如果你想的7通用的持续时间24小时的日子,只需要几天。 'Instant.now()。minus(Duration.ofDays(7))' –
上面只是一个例子。我真正想要的是,在数据库端进行日期计算 –
所有的时间都应该是UTC,以便时区不会计算在内。 – JohnnyHK