Querying connection information in MongoDB
As with all other database platforms, daily administration and troubleshooting of MongoDB often begins with analyzing database activity. It can be helpful to see all connections from within MongoDB, which you can do by running:
db.$cmd.sys.inprog.findOne({$all:1}); or db.currentOp(true);
where the “true” makes the command include idle connections.
Managing High Volumes of Connection Data
But often there's so many connections that unless you capture the output in a script file or some similar thing, it's kind of useless. Thanks to a hint given by Scott Hernandez in the mongodb-user forum, we can use the line:
db.currentOp(true).inprog.forEach(function(o){if( ) printjson(o)});
to show a subset that is more manageable.
Filtering Connections by Application Server or ConnectionID
For instance, we might want to show all connections from a particular application server:
db.currentOp(true).inprog.forEach(function(o){if(o.client.indexOf(“10.0.1.77”) != -1 ) printjson(o)});
Or from the MongoDB logs we’ll see a particular connectionId and want to know where it came from:
db.currentOp(true).inprog.forEach(function(o){if(o.connectionId == 8606 ) printjson(o)});
Analyzing Connection Metadata Output
This will then show all the connection info for that connectionId:
{ "opid" : 7117752, "active" : false, "lockType" : "read", "waitingForLock" : false, "op" : "query", "ns" : "player_data.player_answerchoice", "query" : { "$query" : { "poll_id" : ObjectId("4f58e08db3e93217c2000008") } }, "client" : "10.0.1.77:59542", "desc" : "conn", "threadId" : "0x49e31940", "connectionId" : 8606, "numYields" : 0 }
MongoDB Database Consulting Services
Ready to optimize your MongoDB Database for the future?
Share this
Share this
More resources
Learn more about Pythian by reading the following blogs and articles.

Exploring the operations log in MongoDB
Purge statspack snaps of source db on test db having different DBID?
DUPLICATE from ACTIVE Database Using RMAN, a Step-by-Step Guide
Ready to unlock value from your data?
With Pythian, you can accomplish your data transformation goals and more.