我正在尝试更新一个最初捕获为字符串而不是日期类型的字段。当前,插入到集合中的查询已被修改,因此将来插入到该字段的查询为date。数据类型
但是,在修改仍然具有字符串数据类型的查询之前,我正在尝试更新以前插入的数据
这是我尝试过的,但给出了错误
db.collection.update_one({“clusterTime”:{"$type":“string”}},{"$set":{“clusterTime:datetime.datetime.strptime(’$clusterTime’,’%y-%m-%d’).date()}})我真的很感谢大家的贡献。
谢谢。
发布于 2021-03-20 08:51:12
使用forEach遍历记录,转换为日期,然后保存文档
db.collectionName.find({ 'clusterTime' : { '$type' : 'string' }} ).forEach(function (doc) {
doc.clusterTime = new Date(doc.clusterTime); // convert field to date
db.collectionName.save(doc);
});发布于 2021-03-20 11:13:58
用于更新数据类型的python版本
db.collection.update(
{
"clusterTime":{
"$type":"string"
}
},
[
{
"$set":{
"clusterTime":{
"$dateFromString":{
"dateString":"$clusterTime",
"format":"%Y-%m-%d"
}
}
}
}
]
)https://stackoverflow.com/questions/66716298
复制相似问题