×

Please give details of the problem

Skip to content

Server-Side Javascript ES6 API Reference

RMPCollections

Methods for managing Custom Mongo Collections

Create Collection

Creates a new Mongo collection

Syntax : RMPCollection.createCollection(collectionName, isPublic, isReadonly);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
isPublic Boolean Whether Mongo collection can be accessed publicly, without checking rights
isReadonly Boolean Whether the Mongo collection can only be modified by an administrator of the customer account

Returns : Collection successfully created or not

Type : Boolean

Call Example :

  
    <@script env="js">
      var f = RMPCollection.createCollection('col_rms_v3', false, false);
      RMPData.setOutput(f);
    </@script>
   

Drop Collection

Drop a Mongo collection

Syntax : RMPCollection.drop(collectionName);

Parameters :

Name Type Description
collectionName String Name of a collection

Returns : Collection successfully removed or not

Type : Boolean

Call Example :

  
    <@script env="js">
      var f = RMPCollection.drop('col_rms_v1_new');
      RMPData.setOutput(f);
    </@script>
   

Rename Collection

Rename a Mongo collection

Note: Mongo collection names are unique with an account

Syntax : RMPCollection.renameCollection(oldCollectionName, newCollectionName);

Parameters :

Name Type Description
oldcollectionName String Current name of the Mongo collection
newcollectionName String New name of the Mongo collection

Returns : Renaming successful or not.

Type : Boolean

Call Example :

  
    <@script env="js">
      var f = RMPCollection.renameCollection('col_rms_v1', 'col_rms_v1_new');
      RMPData.setOutput(f);
    </@script>
   

Create Index

Creates indexes on Mongo collection

Syntax :

  • RMPCollection.createIndex(collectionName, indexName, indexArray);
  • RMPCollection.createIndex(collectionName, indexName, indexArray, unique);
  • RMPCollection.createIndex(collectionName, indexName, indexArray, unique, ascending);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
indexName String Name of the Index
indexArray Array of strings Index Array
unique (optional) Boolean Whether the index shall observe uniqueness
ascending (optional) Boolean The ordering

Returns : The result of the create operation (true or false)

Type : Boolean

Call Example :

  
    <@script env="js">
      var idx = ['brand_id'];
      var f = RMPCollection.createIndex('rms_car', 'rms_car_idx', idx);
      RMPData.setOutput(f);
    </@script>
   

Delete Index

Deletes an index on a Mongo collection

Syntax : RMPCollection.dropIndex(collectionName, indexName);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
indexName String Name of the Index

Returns : The result of the delete operation (true or false)

Type : Boolean

Call Example :

  
    <@script env="js">
      var f = RMPCollection.dropIndex('rms_car', 'rms_car_idx');
      RMPData.setOutput(f);
    </@script>
   

List Index

List of all indexes on a Mongo collection

Syntax : RMPCollection.listIndexes(collectionName);

Parameters :

Name Type Description
collectionName String Name of the collection

Returns : List of indexes

Type : Array of maps

Data structure :

  
    <@script env="js">
      [{"name": "{String}", "keys": ["{String}, ..."], "unique": {Boolean}, "ascending": {Boolean} }, ...]
    </@script>
   

Call Example :

  
    <@script env="js">
      var l = RMPCollection.listIndexes('rms_car');
      RMPData.setOutput(l);
    </@script>
   

Aggregate

Run an aggregation query over a Mongo collection

Note: Please make sure that you don't exceed the maximum memory limit when using the function.

Syntax : RMPCollection.aggregate(collectionName, pipelines);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
pipelines Array of maps An aggregation requires at least one pipeline

Returns : JSON result of the aggregate operation

Type : Array of maps

Call Example :

  
    <@script env="js">
      var aggr = [ {'$match': {'brand_id':'bogdan_group'} }, { $group : { _id : '$name', totaldocs : { $sum : 1 } } } ];
      var a = RMPCollection.aggregate('car_rms', aggr );
      RMPData.setOutput(a);
    </@script>
   

Find

Retrieve objects from a Mongo collection

Note: Please make sure that you don't exceed the maximum memory limit when using the function.

Syntax :

  • RMPCollection.find(collectionName, query);
  • RMPCollection.find(collectionName, query, offset);
  • RMPCollection.find(collectionName, query, offset, limit);

Parameters :

Name Type Description
collectionName String Name of the collection
query Map Query to filter objects to be retrieved.
"$query": query in JSON object format. Refer to the MongoDB query documentation for details: https://www.mongodb.com/docs/manual/tutorial/query-documents/
"$orderby": order by attributes in JSON array format. The attribute values -1 (descending) or 1 (ascending) determine the order direction
offset (optional) Integer Number of leading items to be skipped.
limit (optional) Integer Max number of items returned.

Returns : List of objects

Type : Array of maps

Call Example :

  
    <@script env="js">
      var query = {"$query":{"a":2},"$orderby": [{"status":-1}, {"last_name":1}]};
      var f = RMPCollection.find('car_rms', query);
      RMPData.setOutput(f);
    </@script>
   

Count Documents

Count documents verifying a condition in a Mongo collection

Syntax : RMPCollection.countDocuments(collectionName, query);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
query Map Mongo Query to filter objects to be retrieved

Returns : The number of documents matching the query

Type : Long

Call Example :

  
    <@script env="js">
      var query = {};
      var f = RMPCollection.countDocuments('car_rms', query);
      RMPData.setOutput(f);
    </@script>
   

Insert Object (insertOne)

Insert object in a Mongo collection

Syntax : RMPCollection.insertOne(collectionName, data);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
data Map Data to store in a collection

Returns : The saved data

Type : Map

Call Example :

  
    <@script env="js">
      var payload = {"engine":"e1","brand_label":"Brand-1","name":"Name-1","brand_id":"b1"};
      var f = RMPCollection.insertOne('car_rms', payload);
      RMPData.setOutput(f);
    </@script>
   

Insert Objects (insertMany)

Insert many objects in a Mongo collection

Syntax : RMPCollection.insertMany(collectionName, data);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
data List (Map) Data to store in a collection

Returns : The saved data

Type : Array of Maps

Call Example :

  
    <@script env="js">
      var payload = [
      {
        "engine": "e2",
        "brand_label": "Brand-2",
        "name": "Name-2",
        "brand_id": "b2"
      },
      {
        "engine": "e3",
        "brand_label": "Brand-3",
        "name": "Name-3",
        "brand_id": "b3"
      }
    ];
      var f = RMPCollection.insertMany('car_rms', payload);
      RMPData.setOutput(f);
    </@script>
   

Delete Objects

Remove fields from documents that matches with the given query

Syntax : RMPCollection.deleteMany(collectionName, query);

Parameters :

Name Type Description
collectionName String Name of a Mongo collection
query Map Mongo query to filter objects to be retrieved

Returns : Number of removed objects

Type : Integer

Call Example :

  
    <@script env="js">
      var query = {'brand_id':'b3'};
      var num = RMPCollection.deleteMany('car_rms', query);
      RMPData.setOutput(num);
    </@script>
   

Update Objects

Update fields on a subset of the documents in a Mongo collection

Syntax : RMPCollection.updateMany(collectionName, data, query);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
data Map Data to be updated in a collection
query Map Query to filter objects to be retrieved

Returns : Number of updated fields

Type : Integer

Call Example :

  
    <@script env="js">
      var query = {'brand_id':'b2'};
      var upd = {'$set':{'engine':'e2','brand_label':'Brand-2','name':'Name-2'}};   
      var num = RMPCollection.updateMany('car_rms', upd, query);
      RMPData.setOutput(num);
    </@script>
   

Update Field (updateMany)

Update fields on a subset of the documents in a Mongo collection

Syntax :

  • RMPCollection.updateField(collectionName, query, data);
  • RMPCollection.updateField(collectionName, query, data, multi );

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
query Map Mongo Query to filter objects to be retrieved
data Map Data to be updated in a collection
multi (optional) Boolean true if multiple documents have to be updated

Returns : Number of updated fields

Type : Integer

Call Example :

  
    <@script env="js">
      var query = {"brand_id" : "bogdan_group"};
      var upd = {"engine":"engine_3"};
      var num = RMPCollection.updateField('car_rms', query, upd, true);
      RMPData.setOutput(num);
    </@script>
   

Update Field (updateOne)

Update a field on a subset of the documents in a Mongo collection

Syntax : RMPCollection.updateField(collectionName, query, data);

Parameters :

Name Type Description
collectionName String Name of the Mongo collection
query Map Mongo Query to filter objects to be retrieved
data Map Data to be updated in a collection

Returns : Number of updated fields

Type : Integer

Call Example :

  
    <@script env="js">
      var query = {"brand_id" : "bogdan_group"};
      var upd = {"engine":"engine_3"};
      var num = RMPCollection.updateField('car_rms', query, upd, false);
      RMPData.setOutput(num);
    </@script>
   

Delete Field

Remove a field from documents that matches with the given query

Syntax :

  • RMPCollection.deleteField(collectionName, query, fieldName);
  • RMPCollection.deleteField(collectionName, query, fieldName, multi); * Parameters :
Name Type Description
collectionName String Name of a Mongo collection
query Map Mongo Query to filter objects to be retrieved
fieldName String Name of the field
multi (optional) Boolean Whether the apply the change to multiple matched items

Returns : Number of updated objects

Type : Integer

Call Example :

  
    <@script env="js">
      var query = {"name":"delete_me!"};
      var num = RMPCollection.deleteField('car_rms', query, 'engine');
      RMPData.setOutput(num);
    </@script>
   

Import CSV

Import objects in a collection from a CSV file

Syntax :

  • RMPCollection.importCSV(fileId, collectionName, options);
  • RMPCollection.importCSV(fileId, collectionName, options, dropCollection);

Parameters :

Name Type Description
fileId String Reference of an uploaded file
collectionName String Name of the Mongo collection
options Map Options to be used during the call, all values are optional
dropCollection (optional) Boolean if true, it creates the collection from scratch

The "options" map can contain the following values:

Name Type Description
separator String Separator between two values (e.g. ; or ,). Default: ,
delimiter String Used to allow values containing a separator character (e.g. " or '),
to include a delimiter in a value, use two delimiters (e.g. ""). Default: "
empty String Value to be used to represent an empty value (two separators in a row). Default: ""
charset String Character set to be used to read the file content. Default: UTF-8
parse_numbers Array Names/indices of columns containing numerical values to be stored as Double.
e.g ["age",3] will parse columns header "age" and the 4th column
parse_longs Array Names/indices of columns containing long values to be stored as Long.
e.g: ["age",3] will parse column header "age" and the 4th column.
trim boolean Trim values before inserting them in the collection.
Trimming also occurs before decoding numerical values.

Throws : Uploaded file X doesn't exist.

Returns : The number of imported objects.

Type : Integer

Call Example :

  
    <@script env="js">
      var options = {};
      var noOfRecords = RMPCollection.importCSV("30ad9a42-8a4e-48b3-b857-660979eb77dd", "csks", options);
      RMPData.setOutput(noOfRecords);
    </@script>
   

Import JSON

Import objects in a Mongo collection from a JSON file.

Syntax :

  • RMPCollection.importJSON(fileId, collectionName, options);
  • RMPCollection.importJSON(fileId, collectionName, options, dropCollection);

Parameters :

Name Type Description
fileId String Reference of an uploaded file
collectionName String Name of the Mongo collection
options map Options to be used during the call, all values are optional
dropCollection (optional) Boolean if set to true, it creates the collection from scratch

The "options" map can contain the following values:

Name Type Description
separator String Separator between two values (e.g. ; or ,). Default: ,
delimiter String Used to allow values containing a separator character (e.g. " or '),
to include a delimiter in a value, use two delimiters (e.g. ""). Default: "
empty String Value to be used to represent an empty value (two separators in a row). Default: ""
charset String Character set to be used to read the file content. Default: UTF-8
parse_numbers Array Names/indices of columns containing numerical values to be stored as Double.
Example: ["age",3] will parse columns header "age" and the 4th column
parse_longs Array Names/indices of columns containing long values to be stored as Long.
Example: ["age",3] will parse column header "age" and the 4th column.
trim boolean Trim values before inserting them in the collection.
Trimming also occurs before decoding numerical values.

Returns : The number of imported objects.

Type : Integer

Call Example :

  
    <@script env="js">
      var options = {};
      var noOfRecords = RMPCollection.importJSON("fd58e98b-447e-42f8-8a78-24b55d928f3e",   "property", options);
      RMPData.setOutput(noOfRecords);
    </@script>