仅当当前值为false时才更新布尔属性

时间:2016-06-03 04:51:03

标签: mongodb

我正在尝试更新视频进度的文档。有一个isFinished字段,如果用户尚未观看视频,则该值为false。一旦用户完成观看,它应该更新为真。

我只是根据视频的实际长度检查视频的当前时间,以确定传递给更新方法的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
    }
});

1 个答案:

答案 0 :(得分:1)

此命令应该可以正常工作。

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