如何解决在已创建的文档中添加日期类型
我的猫鼬模式定义如下。
Activate()
我更新了架构,将mongoose.Schema({
"url": String,"translations": [
{
"targetLang": String,"source": String,"target": String
}
],},{ versionKey: false });
和createdAt
包括在内,新架构如下:
updatedAt
因此,在创建新文档时,将按预期自动填充mongoose.Schema({
"url": String,"target": String,"createdAt": { type: Date,default: Date.now },"updatedAt": { type: Date,default: Date.now }
}
],{ versionKey: false });
和createdAt
。如何使用新密钥updatedAt
和createdAt
获取旧文档。有什么办法吗?
注意:我同意旧文档使用当前日期或以前的日期。但是我希望他们所有人都有个约会。
解决方法
您需要手动更新它们,例如从mongoshell:
{
const toUpdate = db.getCollection('collection').find({
$or: [
{ 'translations.createdAt': null },{ 'translations.updatedAt': null }
]
});
toUpdate.forEach(doc => {
const timestamp = doc._id.getTimestamp();
doc.translations.createdAt = timestamp;
doc.translations.updatedAt = timestamp;
db.getCollection('collection').updateOne({ _id: doc._id },{ $set: doc });
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。