Skip to content

Instantly share code, notes, and snippets.

@Tug
Created November 23, 2012 20:37
Show Gist options
  • Save Tug/4137177 to your computer and use it in GitHub Desktop.
Save Tug/4137177 to your computer and use it in GitHub Desktop.
Document not found when read_secondary is true
var mongoose = require('mongoose');
var mongoConfig = {
servers : [
'localhost:27017/test-replset'
, 'localhost:27018'
, 'localhost:27019'
]
, options : {
server : {
auto_reconnect: true
}
, replset : {
rs_name : 'rs0'
, read_secondary : true
}
, db : {
safe : { w: 3, wtimeout: 5000 }
}
}
};
var File = new mongoose.Schema({
servername : { type: String, index: { unique: true } }
, originalname : String
});
var FileModel = mongoose.model('File', File);
function connect(callback) {
var connStr = 'mongodb://'+mongoConfig.servers.join(',');
mongoose.connect(connStr, mongoConfig.options, function(err) {
if(err) {
console.log(err);
return;
}
console.log(err || "Connected to MongoDB");
callback();
});
}
connect(function() {
FileModel.remove({}, function(err) {
if(err) {
error(err || new Error('Error emptying collection'));
return;
}
function request(i, callback) {
var file = new FileModel({
servername : "Hello "+i
, originalname : "Word "+i
});
file.save(function(serr) {
if(serr) {
console.log('error while saving', serr);
return;
}
console.log("looking for "+file.servername);
FileModel.findOne({servername: file.servername}, function(err, doc) {
if(err || !doc) {
callback(err || new Error('File not found'));
return;
}
callback(null, doc);
});
});
}
function go(i) {
request(i, function(err, doc) {
if(err) console.log("ERROR! ",err.message);
else console.log("success!");
if(i-->0) go(i);
});
}
go(10);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment