如何在Sails.js中embedded和写入mongo对象(多于一个级别)?

以sails.js为例,

// Person.js

var Person = { attributes: { firstName: 'STRING', lastName: 'STRING', age: { type: 'INTEGER', max: 150, required: true } birthDate: 'DATE', phoneNumber: { type: 'STRING', defaultsTo: '111-222-3333' } emailAddress: { type: 'email', // Email type will get validated by the ORM required: true } } }; 

现在,我将如何添加电子邮件地址有一个家庭和办公室作为embedded式领域?

试图这样做:

 emailAddress: { { work: { type: 'email', }, personal: { type: 'email', } } }, 

 emailAddress: { attributes: { work: { type: 'email', }, personal: { type: 'email', } } }, 

两者都不起作用。 第二种情况是第一种情况出现“意外标记{”,例如“没有为属性find规则”的错误。

好的,通过一些关于这个线程。 看来Sails Waterline在这个阶段不支持embedded式MongoDB模式。 你可以写自己的贡献或强制它,但支持开箱即用(模型validation)等也需要被黑客入侵。 https://github.com/balderdashy/sails-mongo/issues/44

另一种select – 帆船mongoose不幸的是不支持。 从哪里可以决定使用“sails-mongoose”包的集合名称,在node.js + sailsjs中?

更新 。 从V0.10开始,Sails支持协会。 也许这会使它工作。 还在试验中。

更新 。 通过关联function,您可以在不同的模型中强制使用模式,并在它们之间创build引用,但到目前为止,您似乎不能embedded它们 – 只能将它们与不同的集合/表相关联。

https://github.com/balderdashy/sails-mongo/issues/44

看起来他们已经把它作为function请求计划了。