使用创建日期字段追溯更新 MongoDB 文档的集合

Retroactively update a collection of MongoDB docs with a create date field

我正在尝试向文档集合中添加一个字段。我想要做的就是用一个名为 create_date 的字段更新每个文档,并将它们创建时的时间戳作为值。我知道您可以使用 _id.getTimestamp() 从 ObjectId 获取时间戳,但我正在寻找一些 mongodb shell 命令,我可以使用它轻松地完成此操作。

谢谢

我有同样的问题。以下代码在 3.2 中对我有用:

db.members.update({},{$set : {"createdAt":{
        "$date": "2017-01-01T09:19:38.116Z"
    }}},false,true)

在上面的示例中,最后 2 个字段为 false,true 指定了 upsert 和 multi 标志。

Upsert:如果设置为 true,则在没有文档符合查询条件时创建一个新文档。

Multi:如果设置为true,则更新满足查询条件的多个文档。如果设置为 false,则更新一个文档。

在 3.2 中,您也可以使用以下命令:

db.collection.updateMany({},{$set : {"createdAt": new Date("2017-01-01T09:19:38.116Z")}})