mongo como erro de serviço: não é possível determinar o estado do servidor

4

Estou tentando usar o mongodb como um serviço e iniciei com os serviços heroku, por exemplo, dashboard.heroku.com/apps/scaleqamongo/resources. Eu tentei vários addons que eles chamam de mongolab, mongohq. Eu crio bancos de dados e, em seguida, tento adicionar esse endereço de serviço ao meu aplicativo como

db: 'mongodb://username:[email protected]:10292,candidate.18.mongolayer.com:10292/app25406086',

mas isso me dá erro

Error: Cannot determine state of server
Error: No replica set primary available for query with ReadPreference PRIMARY
    at ReplSet.checkoutReader (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/repl_set/repl_set.js:585:14)
    at Cursor.nextObject (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:723:48)
    at Cursor.nextObject (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/scope.js:22:20)
    at Collection.findOne (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection/query.js:157:10)
    at /prod/app/dashboard/node_modules/connect-mongo/lib/connect-mongo.js:214:18
    at MongoStore._get_collection (/prod/app/dashboard/node_modules/connect-mongo/lib/connect-mongo.js:148:21)
    at MongoStore.get (/prod/app/dashboard/node_modules/connect-mongo/lib/connect-mongo.js:213:10)
    at Object.session [as handle] (/prod/app/dashboard/node_modules/express/node_modules/connect/lib/middleware/session.js:311:11)
    at next (/prod/app/dashboard/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.methodOverride [as handle] (/prod/app/dashboard/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:48:5)

Enquanto eu consigo me conectar ao banco de dados usando o comando shell

mongo candidate.19.mongolayer.com:10292/app25406086 -u username -p password

Qual é o problema? Por que não consigo me conectar?

    
por raju 19.05.2014 / 14:00

1 resposta

2

Este é um erro com o driver / ODM do Mongoose.

Tente isso (tirado dos documentos):

var uri = "mongodb://username:[email protected]:10292,candidate.18.mongolayer.com:10292/app25406086"
var options = {
  replset: { rs_name: 'myReplicaSetName' }
}
mongoose.connect(uri, options);
    
por 12.08.2014 / 16:54