how to convert mongodb db.currentOp() into json
-
I want to create an interface for all running processes in Mongodb
How can I convert mongodb db.currentOp() output into json so that I can access that
The output currently is a BSON string and I cannot use any libraries that use json ... which would become convenient to develop an interface
-
I suspect the problem you are referring to is results returned in a MongoDB shell environment which use JavaScript helper syntax like
ISODate()
that is not compatible with JSON.If so, the solution is to convert shell output into https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/ which has JSON-compatible representations of all https://www.mongodb.com/docs/manual/reference/bson-types/ .
For example, using
mongosh
:test> dt = new Date() ISODate("2022-05-06T10:51:23.454Z")
test> EJSON.stringify(dt)
{"$date":"2022-05-06T10:51:23.454Z"}
If you want to convert
db.currentOp()
output into Extended JSON for use with standard libraries:mongosh --eval "EJSON.stringify(db.currentOp())" --quiet
The
--quiet
option suppresses startup messages (for example, version info or startup warnings) so output should only include results of the--eval
call.