MongoDB 管理笔记摘要
MongoDB 修改重命名字段名
通过命令行批量修改
修改一级字段名
CoamReSet:PRIMARY> db.TruckRoadsPath.update({},{$rename:{"Lng":"lng"}},{multi:true})
WriteResult({ "nMatched" : 2702582, "nUpserted" : 0, "nModified" : 2702582 })
修改二级字段名
CoamReSet:PRIMARY> db.TruckRoadsPath.update({},{$rename:{“PathInfo.Speed”:”PathInfo.speed”}},{multi:true})
出现以下错误,提示不能更新 PathInfo 为 null 的数据,提示更新失败,但检查数据发现已全部正确更新过来了
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "cannot use the part (PathInfo of PathInfo.Speed) to traverse the element ({PathInfo: null})"
}
})
正确的检查非 null 条件下的写法应该是:
CoamReSet:PRIMARY> db.TruckRoadsPath.update({"PathInfo":{$ne:null}},{$rename:{"PathInfo.State":"PathInfo.state"}},{multi:true})
WriteResult({ "nMatched" : 2702158, "nUpserted" : 0, "nModified" : 2702156 })
参考 How do you query this in Mongo? (is not null)