javascript - 将 _id 中的创建日期字段添加到所有 mongo 文档中

标签 javascript node.js mongodb

我正在尝试使用 _id 字段向所有现有文档添加新字段 createdDate。我这样做是为了使文档易于阅读。我尝试了以下代码片段,但它不起作用。

dbase.collection("cname").updateMany(
  {},
  { $set: { createdDate: new Date(parseInt("$_id".substring(0, 8), 16) * 1000) } } 
)
.then((resp)=>{ console.log('complete') })

这是我现在所有文档的createdDate(运行查询后):“1970-01-01T00:00:00.000+00:00”

我的代码有什么问题?

最佳答案

您需要使用update with aggregation pipeline从 MongoDB 4.2 开始,

  • $toDate将类型转换为 _id
  • 的日期
dbase.collection("cname").updateMany(
  {},
  [{ 
    $set: { createdDate: { $toDate: "$_id" } } 
  }]
)
.then((resp) => { console.log('complete') });

Playground

关于javascript - 将 _id 中的创建日期字段添加到所有 mongo 文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64836293/

相关文章:

javascript - 从 Coder Projects 制作音乐盒元素,盒子似乎没有注册 mousedown

javascript - 我可以将网格绑定(bind)到 Kendo mvvm 外部编辑器吗?

JavaScript - 检查字符串中的任何小写字母

node.js - 如何在 Node/Express 中编辑 Jade 图像字段?

javascript - 基于关联查找,但不将关联包含在 Sequelize 的结果中

javascript - 如何在带有字符串变量的mongoDB查询中使用$regex?

ruby-on-rails - 数组对象中的 Mongo 查询

javascript - node.js同步mysql查询

node.js - Discord.js 错误 : Error: FFmpeg/avconv not found! 即使已安装

javascript - Strapi 上传的文件未显示在网站上