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