javascript 如何使用对象中的值向已存在的对象添加时间戳?

yquaqz18  于 2023-02-28  发布在  Java
关注(0)|答案(2)|浏览(177)

我有一个MongoDb数据库,里面有大约1000条记录,我将timestamp选项设置为false,但它们都没有createdAtupdatedAt属性。我已经将timestamp设置为true,并且我想更新所有具有createdAttimestamp的对象,以匹配下面的对象中的值date属性,可能吗?

    • 例如:**
Review.findMany({}, $set: { createdAt: '<OBJECT>.date' }});

我想用date字段中相同对象的值更新createdAt

i1icjdpr

i1icjdpr1#

试试这个:

db.collection.updateMany(
  { createdAt: { $exists: false } },
  [ { $set: { createdAt: { $toDate: "$_id"} } } ]
)
rsaldnfx

rsaldnfx2#

找到解决方法

所以我首先要做的就是给所有文档添加createdAt属性,我想手工添加的原因是我忘记给Scheme添加timestamp键了,数据库中已经有大约1000条记录了。

这就是我所做的

1.在对象的Scehma中创建一个新属性createdDate。(JavaScript)
1.迭代所有文档并将createdDate更新为日期(从date转换后)。
1.使用Mongo Shell连接到数据库(借助此链接)。
1.导航到要编辑的集合。
1.使用以下命令将createdDate重命名为createdAt

db.COLLECTION.updateMany({}, { $rename: { 'createdDate': 'createdAt' } })

1.正在从架构中删除createdDate
"希望能帮到别人"

相关问题