在开发过程中,难免会遇到需要修改数据库字段的问题,所以记录一下如何批量更新mongo表字段。
下面的代码是在mongodb的client中执行,笔者使用的是 NoSQLBooster for MongoDB
var reqs = [];
var cursor = db.col.find({
"expire_date":{$type:16} // type为16表示 expire_date是int32类型
});
cursor.forEach( document => {
reqs.push({
"updateOne": {
"filter" : { "_id": document._id },
"update" : { "$set": { "expire_date": null} } // 将expire_date设置为None
}
});
if (reqs.length === 1000) {
db.col.bulkWrite(reqs);
reqs = [];
}
})
if (reqs.length > 0) {
db.col.bulkWrite(reqs);
print(reqs.length)
}