我的Mongo数据库中没有几条记录。 currentStatus字段具有三种状态(“ IDLE”,“ ACTIVE”,“ SHUTDOWN”)之一。我想将currentStatus字段中的所有记录从“ IDLE”或“ ACTIVE”更新为“ SHUTDOWN”。我需要确保它们不在更新之前的“关闭”状态。
该字段如下:
试过了,但是没用。
var currentStatusActive = this.collection.find({currentStatus: "ACTIVE"});
var currentStatusIdle = this.collection.find({currentStatus : "IDLE"});
if(currentStatusActive.currentStatus == "ACTIVE" || currentStatusIdle.currentStatus == "IDLE"){
var newStatus = {$set: {currentStatus: "SHUTDOWN"} };
this.collection.updateMany(newStatus, function(err,res){
if (err) throw err;
})
}
答案 0 :(得分:2)
您必须将过滤条件和设置目标包装在mongodb updateMany函数中。
try {
db.collection.updateMany(
{"currentStatus": {$in:["ACTIVE","IDLE"]} },
{ $set: { "currentStatus" : "SHUTDOWN" } }
);
} catch (e) {
print(e);
}
有关更多说明,请参见https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/。