我正在尝试更新视频进度文档。有一个isFinished字段,如果用户还没有看完视频,则该值为false。一旦用户看完它,就应该更新为true。
我只检查视频的当前时间与视频的实际长度,以确定要传递到更新方法的isFinished。问题是,如果用户已经看完一段视频,决定再次观看,但没有看完,则文档不应更新isFinished to false的值。
如果属性的当前值为false,则如何更新它?

MyCollection.upsert({
    userId: this.userId,
    videoId: videoId
}, {
    $set: {
        userId: this.userId,
        videoId: videoId,
        videoStartTime: videoStartTime,
        isFinished: isFinished //only change this if current value is not false
    }
});

最佳答案

此命令应正常工作。

db.collectionname.update({isFinished:false},{$set:{isFinished:true}})

10-07 18:00