我在Meteor中使用簡單架構,集合鉤子和Autoform包,我試圖在更新集合掛鉤中更新模式中的嵌入對象。我覺得我可能做些傻事,但卻無法解決這個問題。我越來越exeption同時節省:Exception while invoking method '/providers/update' Error: 0 must be an integer
我的架構:數據類型驗證錯誤 - MeteorJS/Autoform/SimpleSchema /嵌入式簡單架構
Schemas.Providers = new SimpleSchema({
email: {
type: String,
label: 'Email Address',
autoValue: function() {
if (this.isInsert || this.isUpdate) {
return Meteor.user().emails[0].address;
}
},
autoform: {
afFieldInput: {
type: 'email'
}
}
},
officelocation: {
type: String,
label: 'Location of Office',
optional:true
},
location: {
type: [LocationSchema],
optional:true
}});
收集鉤的作品:
Providers.after.update(function (userId, doc) {
var oldDoc = this.previous;
Providers.direct.update({_id: doc._id},{$set: {location:{
type:'Point',
coordinates:[0,0]
}}});
});
收集掛鉤,不工作..理想我不應該在之後更新收集更新,但要確保它可以正常工作:
Providers.after.update(function (userId, doc) {
var oldDoc = this.previous;
var array=[];
var iArray=doc.officelocation.split(",");
array.push(Number(iArray[1]));
array.push(Number(iArray[0]))
Providers.direct.update({_id: doc._id},{$set: {location:[{
type:'Point',
coordinates:array
}]}});
});
我的locationschema看起來像這樣。而且你是正確的,我期待存儲經緯度,所以我需要準確存儲它。 'LocationSchema =新SimpleSchema({ \t類型:{ \t類型:字符串, \t autoValue:函數(){ \t返回 「點」; \t} \t}, \t座標:{ \t類型: [編號] \t} \t});' –
另外,我不能這樣,存儲爲一個字符串,因爲我使用蒙戈的geoWithin cpabilities做一些位置在我的應用中進行搜索.. –
如果有人有興趣,這我通過在簡單模式中添加'decimal:true'選項解決了ssue問題。 '{{> afQuickField name =「decimal」step =「0.01」}}' –