Meteor inserting into a collection schema with object fields

I am newbie in meteorjs please be bear on me, I am using simple schema and have an object type of field on it… Unfortunately it’s been a while since I’ve done this and I can’t remember how to insert into this type of schema! Can someone help me out?
The schema is as follows:

// Definition of the Parameters Collection

import { Mongo } from 'meteor/mongo';

export const Parameters = new Mongo.Collection('parameters');

// Schema
Parameters.schema = new SimpleSchema({
  name: {
    type: String,
    optional: false,
  },
  sampleSize: {
    type: Number,
    optional: true
  },
  xBarCtrlLimit: {
    type: Object,
    optional: false,
    blackbox: true
  },
  'xBarCtrlLimit.xBarUpperCtrlLimit': {
    type: Number,
    optional: false,
  },
  'xBarCtrlLimit.xBarLowerCtrlLimit': {
    type: Number,
    optional: false,
  },
  xBarSpecLimit: {
    type: Object,
    optional: false,
    blackbox: true
  },
  'xBarSpecLimit.xBarUpperSpecLimit': {
    type: Number,
    optional: false,
  },
  'xBarSpecLimit.xBarLowerSpecLimit': {
    type: Number,
    optional: false,
  },
  rChartCtrlLimit: {
    type: Object,
    optional: false,
    blackbox: true
  },
  'rChartCtrlLimit.rUpperCtrlLimit': {
    type: Number,
    optional: false,
  },
  'rChartCtrlLimit.rLowerCtrlLimit': {
    type: Number,
    optional: false,
  },
  rChartSpecLimit: {
    type: Object,
    optional: false,
    blackbox: true
  },
  'rChartSpecLimit.rUpperSpecLimit': {
    type: Number,
    optional: false,
  },
  'rChartSpecLimit.rLowerSpecLimit': {
    type: Number,
    optional: false,
  },
  createdAt: {
    type: Date,
    autoValue: function() {
      return new Date()
    }
  },
  updatedAt: {
    type: Date,
    autoValue: function() {
      return new Date()
    }
  },
  deletedAt: {
    type: Date,
    autoValue: function() {
      return null
    }
  },
});
// Methods related to Parameters Collection

// Meteor Package(s)
import { Meteor } from 'meteor/meteor';

import { SimpleSchema } from 'meteor/aldeed:simple-schema';

// Collection
import { Parameters } from './parameters.js';

Meteor.methods({
  'parameters.insert': function(parameterData) {
    new SimpleSchema({
      name: {type: String},
      sampleSize: {type: Number},
      xBarUpperCtrlLimit: {type: Number},
      xBarLowerCtrlLimit: {type: Number},
      xBarUpperSpecLimit: {type: Number},
      xBarLowerSpecLimit: {type: Number},
      rUpperCtrlLimit: {type: Number},
      rLowerCtrlLimit: {type: Number},
      rUpperSpecLimit: {type: Number},
      rLowerSpecLimit: {type: Number},
    }).validate( parameterData );
    try {
      Parameters.insert({
        name: parameterData.name,
        sampleSize: parameterData.sampleSize,
        xBarUpperCtrlLimit: parameterData.xBarCtrlLimit, 
        xBarLowerCtrlLimit: parameterData.xBarSpecLimit, 
        xBarUpperSpecLimit: parameterData.rChartCtrlLimit, 
        xBarLowerSpecLimit: parameterData.rChartSpecLimit, 
        rUpperCtrlLimit: parameterData.rChartSpecLimit,
        rLowerCtrlLimit: parameterData.rChartSpecLimit,
        rUpperSpecLimit: parameterData.rChartSpecLimit,
        rLowerSpecLimit: parameterData.rChartSpecLimit,
        createdAt: new Date(),
        deletedAt: null,
      });
    } catch(error) {
      throw new Meteor.Error('error', error.error);
    }
  },
});

The data sent by my form for xBarCtrlLimit is an of objects.

Any suggestions would be awesome!!

Many thanks in advance!

Hello there friend!,

You can try this(from docs):

import SimpleSchema from 'simpl-schema';

const validationContext = new SimpleSchema({
  name: String,
}).newContext();

validationContext.validate({
  $set: {
    name: 2,
  },
}, { modifier: true });

You want to 1) use validate to check if the object is as defined, 2) Meteor.collection.insert if the validation passes.

hope it helps!