简体   繁体   English

流星-插入对象数组

[英]Meteor - insert array of objects

I have this Schema (using meteor-collection2): 我有这个架构(使用meteor-collection2):

Settings = new Mongo.Collection("settings");

var Schema = {};

Schema.Settings = new SimpleSchema({

user_id: {
        type: String,
        optional: false
    },
    settings_firm_name: {
        type: String,
        optional: false
    },
    settings_firm_primary_branch: {
        type: String,
        optional: false
    },
    settings_firm_employees_num: {
        type: Number,
        optional: false,
        min:1
    },
    settings_firm_address: {
        type: String,
        optional: false,
    },
    settings_firm_email: {
        type: String,
        regEx: SimpleSchema.RegEx.Email,
        optional: false,
    },
    settings_firm_web_page: {
        type: String,
        optional: false,
    },
    settings_firm_contact_phone: {
        type: String,
        optional: false,
    },
    settings_firm_fax: {
        type: String,
        optional: false,
    },
    settings_firm_social: {
        type: [Object],
        optional: false,
    },

    "firm_social.$.name": {
        type: String
    },
    "firm_social.$.link": {
        type: String,
        regEx:SimpleSchema.RegEx.Url
    }
});

I want to add to my database data that is validated by this schema. 我想将通过此架构验证的数据添加到数据库中。 settings_firm_social is array of object. settings_firm_social是对象数组。 That objects are created from three different input fields where each object have name and link fields. 这些对象是从三个不同的输入字段创建的,其中每个对象都有名称和链接字段。 How can I insert that document in my database? 如何将该文档插入数据库? I simply try with: 我只是尝试:

Settings.insert(settings, function(error,result){
 if(error){console.log(error)}

});

But my array then is populated with three empty objects ({}). 但是我的数组随后填充了三​​个空对象({})。

EDIT 编辑

When I log settings object that I pass to Meteor method befor insert: 当我记录要传递给Meteor方法的设置对象之前,请插入:

I20150627-00:29:36.523(2)? Server log
I20150627-00:29:36.543(2)? { settings_firm_name: 'Test',
I20150627-00:29:36.543(2)?   settings_firm_primary_branch: 'test',
I20150627-00:29:36.543(2)?   settings_firm_employees_num: '200',
I20150627-00:29:36.543(2)?   settings_firm_address: 'Test',
I20150627-00:29:36.544(2)?   settings_firm_contact_phone: '12345',
I20150627-00:29:36.544(2)?   settings_firm_fax: '123445',
I20150627-00:29:36.544(2)?   settings_firm_web_page: 'http://localhost:3000/settings/ZQwjxYzBuSfodxHvF',
I20150627-00:29:36.544(2)?   settings_firm_email: 'test@hotmail.com',
I20150627-00:29:36.544(2)?   settings_firm_social:
I20150627-00:29:36.545(2)?    [ { name: 'Facebook',
I20150627-00:29:36.545(2)?        link: 'http://localhost:3000/settings/ZQwjxYzBuSfodxHvF' },
I20150627-00:29:36.545(2)?      { name: 'Twitter',
I20150627-00:29:36.546(2)?        link: 'http://localhost:3000/settings/ZQwjxYzBuSfodxHvF' },
I20150627-00:29:36.546(2)?      { name: 'LinkedIn',
I20150627-00:29:36.546(2)?        link: 'http://localhost:3000/settings/ZQwjxYzBuSfodxHvF' } ],
I20150627-00:29:36.546(2)?   user_id: 'ZQwjxYzBuSfodxHvF' }

After insert: 插入后:

I20150627-00:31:23.185(2)? { settings_firm_name: 'Test',
I20150627-00:31:23.185(2)?   settings_firm_primary_branch: 'test',
I20150627-00:31:23.185(2)?   settings_firm_employees_num: 200,
I20150627-00:31:23.185(2)?   settings_firm_address: 'Test',
I20150627-00:31:23.185(2)?   settings_firm_contact_phone: '12345',
I20150627-00:31:23.186(2)?   settings_firm_fax: '123445',
I20150627-00:31:23.186(2)?   settings_firm_web_page: 'http://localhost:3000/settings/ZQwjxYzBuSfodxHvF',
I20150627-00:31:23.187(2)?   settings_firm_email: 'test@hotmail.com',
I20150627-00:31:23.187(2)?   settings_firm_social: [ {}, {}, {} ],
I20150627-00:31:23.187(2)?   user_id: 'ZQwjxYzBuSfodxHvF' }

You can add a new schema object to validate settings_firm_social. 您可以添加新的架构对象以验证settings_firm_social。

Schema.settings = new SimpleSchema({
  settings_firm_social: {
    type: [settingsFirmSocialSchema]
  }
});

And then: 接着:

var settingsFirmSocialSchema = new SimpleSchema({
  name: {
    type: String
  },
  link: {
    type: String
  }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM