0

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

1
  • What do you mean? db.currentOp() returns a JSON (or BSON being more accurate), what is your problem? Apr 27 at 15:24

1 Answer 1

0

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 MongoDB Extended JSON which has JSON-compatible representations of all BSON data 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.

2
  • ok that works ... but only on mongo5x
    – Ram
    Jun 6 at 8:10
  • My example was using mongosh (aka The New MongoDB Shell) which supports MongoDB 4.0 or newer.
    – Stennie
    Jun 17 at 6:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.