node.js - Simplest way to create a connection and execute a query on replicaset with mongoose? -
i'm trying execute specific query on replica set... without success.
what simplest way create connection , execute query on replicaset mongoose?
my code-1:
var mongoose = require('mongoose'); mongoose.connect('mongodb://user:pass@host:port/db,user:pass@host2:port/db'); var someschema = new mongoose.schema({...}, { read: 'secondary' }); var = mongoose.model('some', someschema); some.find(...) -> err [error: not authorized query on bd.collection]
my code-2:
mongoose.connect('mongodb://user:pass@host:port/db,user:pass@host2:port/db?slaveok=true'); some.find(...) -> err [error: not authorized query on bd.collection]
my code-3:
mongoose.connect('mongodb://user:pass@host:port/db,mongodb://user:pass@host2:port/db?slaveok=true'); some.find(...) -> err [error: not authorized query on bd.collection]
my code-4:
mongoose.connect('mongodb://user:pass@end:port/db,mongodb://user:pass@end2:port/db); some.find(...) -> err [error: not authorized query on bd.collection]
my code-5:
mongoose.connect('mongodb://user:pass@end:port/db,mongodb://user:pass@end2:port/db?slaveok=true); var someschema = new mongoose.schema({...}); var = mongoose.model('some', someschema); some.find(...).slaveok() -> query executed on master (apparently) some.find(...).read('secondary') -> query executed on master (apparently - no change on mongostat of replicaset. i'm mongohq user , don't trust in mongostat dashboard.)
so, if connect mongo hostreplica:port/db -u user -p pass, , exec db.getmongo().setslaveok(), can exec db.collection.find without problem.
what i'm doing wrong?
thanks
i followed this doc , works fine me. connection string mongoose looks this:
mongodb://user:pass@host1,user:pass@host2/db?replicaset=myreplica&readpreference=secondarypreferred
i think slaveok
deprecated, , should use readpreference
option.
as use nodejs/mongoose read-only api, want read slave(s), , keep master insertions (which done outside of nodejs). that's why use secondarypreferred
.
Comments
Post a Comment