Skip to content

Instantly share code, notes, and snippets.

@prashanthmadi
Created December 1, 2020 22:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save prashanthmadi/2525a0f233225609fed3c9d29523055e to your computer and use it in GitHub Desktop.
Save prashanthmadi/2525a0f233225609fed3c9d29523055e to your computer and use it in GitHub Desktop.
var MongoClient = require('mongodb').MongoClient
var ReadPreference = require('mongodb').ReadPreference
, assert = require('assert');
var Logger = require('mongodb').Logger;
// Connection URL - Paste your db account connection string from Azure portal
var url = 'mongodb://prmultireadmongo:xxxx==@prmultireadmongo.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@prmultireadmongo@';
// readTargetRegion - this will be used to read From while using Tags
var readFromRegion = "East US";
function doReads(client) {
// setTimeout(readDefaultfunc, 1000, client);
// setTimeout(readFromSecondaryfunc, 1000, client);
setTimeout(readFromNearestfunc, 1000, client);
// setTimeout(readFromRegionfunc, 1000, client, readFromRegion);
}
function readDefaultfunc(client) {
var query = {};
var readcoll = client.db('familiesdb').collection('families');
readcoll.find(query).toArray(function(err, data) {
assert.equal(null, err);
console.log("readDefaultfunc query completed!");
});
}
function readFromSecondaryfunc(client) {
var query = {};
var readcoll = client.db('familiesdb').collection('families');
readcoll.find(query,{readPreference: ReadPreference.SECONDARY}).toArray(function(err, data) {
assert.equal(null, err);
console.log("readFromSecondaryfunc query completed!");
});
}
function readFromNearestfunc(client) {
var query = {};
var readcoll = client.db('familiesdb',{readPreference: ReadPreference.NEAREST}).collection('families');
readcoll.find(query).toArray(function(err, data) {
assert.equal(null, err);
console.log("readFromNearestfunc query completed!");
});
}
function readFromRegionfunc(client, regionName) {
var query = {};
var readcoll = client.db('familiesdb').collection('families');
readcoll.find(query,{readPreference: new ReadPreference(ReadPreference.SECONDARY_PREFERRED, {"region": regionName})}).toArray(function(err, data) {
assert.equal(null, err);
console.log("readFromRegionfunc query completed!");
});
}
// Use connect method to connect to the server
MongoClient.connect(url, {
autoReconnect : true,
// readPreference: ReadPreference.NEAREST
}, function(err, client) {
assert.equal(null, err);
Logger.setLevel('debug');
Logger.filter('class', ['Connection']);
console.log("connected!");
setInterval(doReads, 1000, client);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment