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!