如何获取最近三个月在 mongo shell 中创建的所有文档



我想查找过去三个月(仅限 3 个月内而不是较旧的文档)创建的所有集合文档。

示例文档 :

因为我认为它会更可靠。但是,如果您觉得这是安全的,您也可以指导我使用文档字段ce

提前致谢

如果我完全理解您的问题,那么您选择的比较字段 (ce) 包含自纪元以来的数。如果是这样,那么你不能直接将其与JavascriptDate值进行比较。

相反,您必须将 JavascriptDate对象的time值转换为秒数,然后与该值进行比较。

例如:

var threeMonthsAgo = new Date();
threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3);
var threeMonthsAgoInSeconds = threeMonthsAgo.getTime() / 1000
db.collection.find({ 
ce: { $gte: threeMonthsAgoInSeconds } 
})

这种将米利斯转换为秒的不准确性存在一些不准确性,如果这种不准确性是不可接受的,那么我认为解决方案是将ce存储为自纪元以来的毫秒数。

如果ce存储了millis的数量,那么可以直接将其与计算的"3个月前"Javascript日期的值进行比较。

但是,上面的示例不需要您将ce转换为毫秒。我要说的是,将秒值与从 millis 派生的计算值进行比较会引入一些最小的不准确性可能性。这在您的用例中可能无关紧要,但如果确实如此,那么解决它的唯一方法是将 like 与 like 进行比较,即 millis 与 millis。

最新更新