NoSQLBooster 5.2 Released! official support for MongoDB 4.2

We’re so proud to release NoSQLBooster for MongoDB 5.2 today. This version includes official support for MongoDB 4.2 along with some useful improvements and bugfix.

MongoDB 4.2 support

NoSQLBooster for MongoDB 5.2 upgrades embedded MongoDB Shell to 4.2.0, adds support for all the new shell methods and operations of MongoDB 4.2.

Merge and Other New Aggregation Stages

MongoDB 4.2 adds a few new aggregation pipeline stages, $merge, $planCacheStats, $replaceWith, $set and $unset. NoSQLBooster 5.2 adds these chain methods to AggregationCursor and provide the appropriate code snippets and mouse hover information to support code completion. For more info MongoDB Online Course

db.users.aggregate()
    .planCacheStats({})  
    .replaceWith("$name")
    .set({name: {$concat: ["$f_name", "$l_name"]}})
    .unset(["f_name","l_name"])

Equivalent to the following MongoShell script, but more concise, and easy to write, not to mention code completion.

db.users.aggregate([
    { $planCacheStats: {} },
    { $replaceWith: "$name" },
    { $set: { name: { $concat: ["$f_name", "$l_name"] } } },
    { $unset: ["f_name", "l_name"] }
])

NoSQLBooster 5.2 also enhanced mouse hover for all aggregation chain methods. In addition to method and type definitions, hover is now able to display document and example for these aggregation clain methods. Learn more skills from MongoDB Training

MongoDB 4.2 New Expressions as SQL Functions:

NoSQLBooster 5.2 allows all new Mongodb4.2 aggregation expressions to be used as SQL function in SQL statements. Aggregation Trigonometry Expressions, Aggregation Arithmetic Expressions and Aggregation Regular Expressions (regex) Operators.

Aggregation Trigonometry Expressions:

SELECT 
    sin("value") as sin,--Returns the sine of a value that is measured in radians.
    cos("value") as cos,--Returns the cosine of a value that is measured in radians.
    tan("value") as tan,--Returns the tangent of a value that is measured in radians.
    asin("value") as asin,--Returns the inverse sin (arc sine) of a value in radians.
    acos("value") as acos,--Returns the inverse cosine (arc cosine) of a value in radians.
    atan("value") as atan,--Returns the inverse tangent (arc tangent) of a value in radians.
    atan2("value", "value2") as atan2,--Returns the inverse tangent (arc tangent) of y / x in radians, where y and x are the first and second values passed to the expression respectively.
    asinh("value") as asinh,--Returns the inverse hyperbolic sine (hyperbolic arc sine) of a value in radians.
    acosh("value") as acosh,--Returns the inverse hyperbolic cosine (hyperbolic arc cosine) of a value in radians.
    atanh("value") as atanh,--Returns the inverse hyperbolic tangent (hyperbolic arc tangent) of a value in radians.
    degreesToRadians("value") as degreesToRadians,--Converts a value from degrees to radians.
    radiansToDegrees("value") as radiansToDegrees --Converts a value from radians to degrees.

FROM testCollection

Aggregation Regular Expressions (regex) Operators:

SELECT 
    regexFind(input='Single LINE description.', regex='line', options='i') as regexFind,
    regexFindAll('First lines\nsecond line', 'line', 'i') as regexFindAll,
    regexMatch('Multiple\nline descriptions', 'm.*line', 'is') as regexMatch

FROM testCollection

New Fluent Query Methods

NoSQLBooster 5.2 adds the following new fluent query methods:

//text method performs a text search on the content of the fields indexed with a text index.
db.articles.find({})
     .text({$search: "coffee", $caseSensitive: true}); //Equivalent to:  db.articles.find({$text: { $search: "coffee", $caseSensitive: true}})


//jsonSchema method matches documents that satisfy the specified JSON Schema.
let myschema =  {
    required: [ "item", "qty", "instock" ],
    properties: {
    item: { bsonType: "string" },
    qty: { bsonType: "int" },
    instock: { bsonType: "bool" }
  }
}

db.items.find().jsonSchema(myschema);          //find all documents in the collection that satisfy the schema
db.items.find().nor(qb.jsonSchema(myschema));  //find all documents in the collection that do 

Minor Improvements and Bugfix

  • Fixed, kill operation in monitoring is not allowed when op has no “host” field.
  • Fixed, export to JSON, BSON, CSV with large result set won’t work.
  • Fixed, Kerberos authentication connections where hostname is not the canonical name.
  • Fixed, return the result in object directly when the aggregate option “explain” is true.
  • Fixed, SRV connections with special characters in the password.

To get in-depth knowledge, enroll for a live free demo on MongoDB Online Training

Leave a comment

Design a site like this with WordPress.com
Get started