我知道ObjectIds包含它们的创建日期.有没有办法查询ObjectId的这个方面?
我正在尝试创建一个新date的javascript.
我有year,month和day.在本教程之后,创建new的语法date应该是:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
Run Code Online (Sandbox Code Playgroud)
这正是我在做的事情:
var d = new Date(2016, 12, 17, 0, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
这应该是2016年12月17日,但在我的控制台输出中,我看到:
Tue Jan 17 2017 00:00:00 GMT+0100 (Central Europe Standard Time)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有一个看起来像这样的集合:
{
_id: ObjectId("50a68673476427844b000001"),
other fields
}
Run Code Online (Sandbox Code Playgroud)
我想做一个范围查询来查找两个日期之间的记录.我知道我可以从mongo shell var中的ObjectId获取日期:
var aDate = ObjectId().getTimestamp()
Run Code Online (Sandbox Code Playgroud)
但是目前还没有一种方法(据我现在可以搞清楚)创建一个仅包含时间戳部分的ObjectId - 我认为我的理想解决方案是无功能的mongo shell代码将是:
var minDate = ObjectId(new Date("2012-11-10"));
var maxDate = ObjectId(new Date("2012-11-17"));
Run Code Online (Sandbox Code Playgroud)
使用minDate和MaxDate作为范围值.
有没有办法在SHELL中做到这一点 - 我对一些驱动程序产品不感兴趣.