我想在我的模型中有数组或集合,这是否可能与水线(mongoDB)?有什么选择吗?
例:
{ name: Bundle,col1 : { name : anOtherModel,subCol: { text: aString,... } },col2 : { name : anOtherModel,... } } }
至:
module.exports = { attributes : { name : { type : 'STRING',required : true },basicModules: { type : 'ARRAY',// or 'COLLECTION' required : false } } };
解决方法
我不知道这是否仍然是一个问题,但诀窍不是POST作为“form-data”,也不是“x-www-url编码”.你必须POST“原始”内容:
假设情况:
http://www.example.com/mymodel
形式数据
您的标题可能如下所示:
POST /mymodel/create HTTP/1.1 Host: www.example.com Cache-Control: no-cache ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="basicModules" [1,2,3,4] ----WebKitFormBoundaryE19zNvXGzXaLvS5C
结果是字符串“[1,4]”得到(type-)验证,失败
的X WWW URL编码的
在这种情况下,标题是这样的:
POST /mymodel/create HTTP/1.1 Host: www.example.com Cache-Control: no-cache Content-Type: application/x-www-form-urlencoded basicModules=%5B1%2C2%2C3%2C4%5D
这与表单数据具有完全相同的结果.由于basicModules是字符串“[1,4]”,验证失败
生的
为了使其工作,您的标题必须如下所示:
POST /mymodel/create HTTP/1.1 Host: www.example.com Cache-Control: no-cache {"basicModules":[1,4]}
这将导致您刚才的想法,并输入验证工作.
所以最后,您可以填写JSON中最复杂的模型.例如
POST /mymodel/create HTTP/1.1 Host: www.example.com Cache-Control: no-cache {"user": { "name": { "first":"John","last":"Doe" },"age":25,"pets":[{ "name":"Garfield","type":"cat" },{ "name":"Rudolph","type":"reindeer" }] }