我能否通过日期查询MongoDB的ObjectId?
将时间戳嵌入ObjectId中的查询详细介绍了基于嵌入在ObjectId中的日期的查询。
JavaScript代码简要如下:
/* This function returns an ObjectId embedded with a given datetime */ /* Accepts both Date object and string input */ function objectIdWithTimestamp(timestamp) { /* Convert string date to Date object (otherwise assume timestamp is a date) */ if (typeof(timestamp) == 'string') { timestamp = new Date(timestamp); } /* Convert date object to hex seconds since Unix epoch */ var hexSeconds = Math.floor(timestamp/1000).toString(16); /* Create an ObjectId with that hex timestamp */ var constructedObjectId = ObjectId(hexSeconds + "0000000000000000"); return constructedObjectId } /* Find all documents created after midnight on May 25th, 1980 */ db.mycollection.find({ _id: { $gt: objectIdWithTimestamp('1980/05/25') } });