如何安全地更新共享的MongoDB实例?

我想了解如何在应用程序启动过程中build立我认为需要成为Mongo数据库上的write-lock

我有一个设置,我们有几个(在这个图中只有2个)build立到Mongo副本集的连接的Node API。 在启动时,我希望能够对Mongo运行一些脚本,如果它是旧版本。 例如:

MongoDB: v1 schema
节点应用程序: expecting v3 schema

在这里输入图像说明

因此,在启动期间,Node App将运行v2Upgrade.jsv3Upgrade.js或类似的。 但是,我想确保只有1节点应用程序可以在任何时候运行此。 所以2个问题:

我以正确的方式思考这个问题吗?
我怎样才能最好地创build某种锁,所以只有一个进程在数据库“准备就绪”之前运行这些更新?