使用创建日期字段追溯更新 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")}})
我正在尝试向文档集合中添加一个字段。我想要做的就是用一个名为 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")}})