skip to Main Content

In mongosh

% mongosh
Current Mongosh Log ID: 630639411fcf560da1e8d627
Connecting to:      mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.5.4
Using MongoDB:      6.0.1
Using Mongosh:      1.5.4

I am getting the error

test> printjsononline({teste : 1})
ReferenceError: printjsononline is not defined

But it used to work in mongo tool, before it was upgraded to mongosh. What did that function? How to replace it? This is used by an emacs mode (http://github.com/own-pt/sensetion.el) that I need to use.

2

Answers


  1. As mentioned in the Mongosh documentation:

    mongosh supports a subset of the mongo shell methods. 
    Achieving feature parity between mongosh and the mongo shell is an ongoing 
    effort.
    

    I don’t think the support for printjsononline is added yet. However, you can try printjson method of mongosh, if it works the same.

    Check this list to find all the methods supported by mongosh.

    Login or Signup to reply.
  2. Most functions which are removed in new mongosh are provided by the mongosh-snippets package in Github.

    load('mongonative.js');
    load('mongoassert.js');
    load('mongotypes.js');
    

    Or write your own function:

    if (typeof tojsononeline == 'undefined') {
       function tojsononeline(x) {
          return EJSON.stringify(x)
             .replace(/{"$date":"(.{19,23}Z)"}/g, "ISODate("$1")")
             .replace(/{"$oid":"(w{24})"}/g, "ObjectId("$1")")
             .replace(/{"$numberDecimal":"(.+?)"}/g, "Decimal128("$1")");
       }
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search