Javascript 引用模型的objectid有自己的时间戳吗?(猫鼬v3.6.15)
在Blogpost模型中定义Javascript 引用模型的objectid有自己的时间戳吗?(猫鼬v3.6.15),javascript,node.js,timestamp,mongoose,objectid,Javascript,Node.js,Timestamp,Mongoose,Objectid,在Blogpost模型中定义 schema.user = { type: mongoose.Types.ObjectId, ref: 'User' }; 稍后在访问与模型匹配的文档时 // Timestamp of when the user was created. userDocument._id.getTimestamp(); // Different ObjectId, same value. blogpostDocument.user.getTimestamp(); 这些时间戳是
schema.user = { type: mongoose.Types.ObjectId, ref: 'User' };
稍后在访问与模型匹配的文档时
// Timestamp of when the user was created.
userDocument._id.getTimestamp();
// Different ObjectId, same value.
blogpostDocument.user.getTimestamp();
这些时间戳是一样的吗
我之所以不只是自己测试它,是因为我正在极大地更改数据库的模型,以优化它们并添加新字段,而我还没有完成对它们的更改。因此,我希望在更新所有文档以匹配新模型之前,了解此问题的含义
谢谢大家! 具有相同基础原始值的objectid都将具有相同的时间戳
var mongoose = require('mongoose');
var o1 = new mongoose.Types.ObjectId();
var o2 = new mongoose.Types.ObjectId(o1.toString());
o1.getTimestamp();
//Fri Jul 26 2013 17:47:17 GMT-0600 (MDT)
o2.getTimestamp();
//Fri Jul 26 2013 17:47:17 GMT-0600 (MDT)
旁注:定义模式时,需要使用mongoose.SchemaTypes.ObjectId
而不是mongoose.Types.ObjectId
第二点注意:最好将对象ID作为不透明字符串处理,如果要跟踪创建日期,请使用专用字段跟踪它们。请记住,mongodb对象ID是由数据库本身外部的驱动程序生成的,时间戳是在对象在内存中实例化时生成的,这可能比它实际被发送到数据库进行存储要早得多。。我甚至连点都连不上,前4个字节是时间戳,IIRC。现在这似乎是一个愚蠢的问题!不过,谢谢你的帮助!