MongoDB默认数据加载

问题描述 投票:1回答:1

我在使用MongoDB时遇到了一些问题。

我有2个NodeJS和1个MongoDB的副本。默认数据在数据库中始终加载两次。如何解决这个问题?

我有databaseLoader.js函数,它是DB中的加载数据:

mongoose.promise = Promise;
mongoose.set('useCreateIndex', true);
mongoose.set('useFindAndModify', false);
mongoose.connect(MONGODB_URI, {useNewUrlParser: true})
    .then(
        () => {
            logger.info('Successfully connected to mongoDB');
            loader.loadDefaultData()
                .then(response => {
                });
        },
    )
    .catch(err => {
        logger.error('Connection to MongoDB could not be established');
    });
docker kubernetes
1个回答
2
投票

我不知道你运行2个副本来加载演示数据和连接到db的目的是什么,但如果你的部署中有2个副本,那么每个副本将独立运行,这意味着它将加载两次演示数据。

如果您有一些应用程序并且想要检查是否存在数据库连接,那么在启动应用程序之前,您可以使用initContainer

Init容器与常规容器完全相同,除了:

  • 他们总是跑完成。
  • 每个人必须在下一个启动之前成功完成。
© www.soinside.com 2019 - 2024. All rights reserved.