Created
December 1, 2020 22:16
-
-
Save prashanthmadi/2525a0f233225609fed3c9d29523055e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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