[英]Comparison query operator ObjectId <-> Date
是否可以对ObjectId
执行Date
比较查询$gt
, $lt
等,反之亦然? mongodb驱动程序会自动强制转换吗? 此mongodb服务器会自动强制转换吗?
是的,没有。
在基于JavaScript的方法下,有可能从ObjectId值中获取日期,您可以在其中进行比较。 同样也可以构造一个给定特定日期值的ObjectId,但是看不到它的实用性。 但是截止日期,所有内容都是有效且必不可少的:
ObjectId("53473d87cb495e216c982929") > ObjectId("53473e57cb495e216c98292a")
ObjectId("53473d87cb495e216c982929").getTimestamp() >
ObjectId("53473e57cb495e216c98292a").getTimestamp()
ObjectId("53473d87cb495e216c982929").getTimestamp() >
ISODate("2014-04-11T00:55:35Z")
因此,即使不是这样的声明,这样的形式也可以使用:
db.collection.find({
"$where": function() {
return this._id.getTimestamp() > new Date("2014-01-01");
}
}
至于_id
的“创建”,它们要么在“驱动程序”中完成,要么由用户显式完成,或者如果仍然省略,服务器将生成一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.