繁体   English   中英

比较查询运算符ObjectId <->日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM