如何在远程服务器上运行多个mongodb数据库

时间:2016-06-09 11:08:34

标签: node.js mongodb mongoose centos

我通过ssh在CentOS上有远程服务器,我在端口27017上有一个test mongo数据库。

我想在同一个端口或另一个端口上运行另一个数据库,以便同时在我的应用程序中使用两个数据库。

2 个答案:

答案 0 :(得分:1)

您可以在一个mongod实例上运行多个数据库,如果您只需要另一个数据库,则无需启动多个实例。

你不能在同一个端口上运行多个进程,因此你不能在27017上运行另一个mongod。你可以在另一个端口上启动另一个实例,但是我不确定为什么你会想要除非你正试图创建一个复制集。

答案 1 :(得分:0)

我在一个连接上使用graphQL运行多个mongodb数据库。 这应该会给你一些想法:

<强>连接:

import {MongoClient} from 'mongodb';
import assert from 'assert';
import graphqlHTTP from 'express-graphql';
const server_url = 'mongodb://localhost:27017/contest_server';
const client_url = 'mongodb://localhost:27017/contest_client';

// Establish connection to serverPool
module.exports = (app, PORT, ncSchema) => {
    MongoClient.connect(server_url, (serverErr, serverPool) => {
        assert.equal(null, serverErr);
        MongoClient.connect(client_url, (clientErr, clientPool) => {
            assert.equal(null, serverErr);
            app.use('/graphql', graphqlHTTP({
                schema: ncSchema,
                context: { serverPool, clientPool },
                graphiql: true
            }));

            app.listen(PORT, () => {
                console.log(`Server is listening on port ${PORT}`)
            });

            serverPool.collection("votes").count((err, count) => {
                console.log(count);
            });

            clientPool.collection("counts").count((err, count) => {
                console.log(count);
            });
        });
    });
};