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.


Log in to reply
 


Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2