2016-06-09 12 views
0

Ich habe Remote-Server auf CentOS via ssh und ich habe eine test Mongo Datenbank auf Port 27017.Wie mehrere mongodb Datenbanken auf Remote-Server

Ich möchte laufen weitere Datenbanken auf dem gleichen Port oder vielleicht auf einem anderen laufen Port, um zwei Datenbanken in meiner Anwendung gleichzeitig zu verwenden.

Antwort

1

Sie können mehrere Datenbanken auf einer Instanz von mongod ausführen. Sie müssen nicht mehr als eine Instanz starten, wenn Sie nur eine andere Datenbank benötigen.

Sie können nicht mehr als einen Prozess auf dem gleichen Port ausführen, daher können Sie keinen anderen Mongod auf 27017 ausführen. Sie könnten jedoch eine andere Instanz an einem anderen Port starten, aber ich bin mir nicht sicher, warum Sie das möchten versuche ein Replicaset zu erstellen.

+0

mit robjwilkins zustimmen. Alles, was Sie tun müssen, ist, wenn Sie Ihre DB-Verbindung erhalten, verwenden Sie separate Datenbanken Namen, so dass Sie verschiedene 'Db' Verbindungen für verschiedene Datenbanken haben, die auf dem gleichen Port laufen. – JBone

0

Ich verwende mehrere mongodb-Datenbanken mit graphQL auf einer Verbindung. Dies sollte Ihnen eine Idee geben:

Verbindung:

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); 
      }); 
     }); 
    }); 
};