mongodb中需要修改某列值可以使用$set 设置。但如果是动态修改,如在原有值上append其他字符,或则对列值进行更为复杂的更新,则需要在shell中脚本更新。
如 将userid值,前加固定字符“test”。在IntelliShell中执行一下代码
db.getCollection("Log")
.find({"_id":"5bc05a6c4e96b32bfc8d03cc"})
.forEach(
function(e,i){
e.UserId="test"+e.UserId;
db.getCollection("Log").save(e);
}
);
db.getCollection("Log").find({"_id":"5bc05a6c4e96b32bfc8d03cc"},{UserId:1});
执行结果:
对符合查询条件的数据,批量更新字段,没有该字段,则自动添加;
db.SimilarVectors.find({
"Category" : "2051",
"MainNewsPublishTime":{
$gte:ISODate("2017-10-18T02:51:00"),
$lte:ISODate("2017-10-19T02:51:00")
}
}).forEach(
function(item){
db.SimilarVectors.update({"_id":item._id},{"$set":
{"LastUpdateTime":item.MainNewsPublishTime,"aaa":item.AAAA}},false,false)}
);
print("end")