시계열 데이터 컬렉션이 있습니다. 이 같은Meteor Collection Update 하위 문서
:
{ _id: 'queBoS2mgjovC85uY',
sum_samples: 0,
type: 'Temperature',
timestamp_minute: "Sun Aug 07 2016 10:03:18 GMT-0400 (EDT)",
num_samples: 0,
Sensor:{
'0': { value: 0, real: false },
'1': { value: 0, real: false },
'2': { value: 0, real: false },
'3': { value: 0, real: false },
'4': { value: 0, real: false },
'5': { value: 0, real: false },
'6': { value: 0, real: false },
'7': { value: 0, real: false },
'8': { value: 0, real: false },
'9': { value: 0, real: false },
'10': { value: 0, real: false },
...
'59': { value: 0, real: false }
}
}
'0', '1'객체는 시간의 분입니다. 이제 측정 된 값 중 하나를 Minute Value로 업데이트하고 "real"을 true로 설정하려고합니다. 실제 값은 이전 값이 실제 측정 된 센서 값이며 초기 값이 아님을 나타냅니다.
하지만 시도한 모든 Temperature.update()가 작동하지 않습니다. 취미 프로그래머이기 때문에 운석과 몽고 밥에 관한 나의 작은 지식 때문일 수도 있습니다. 항상 최신 항목을 업데이트하고 싶습니다. 누군가 나를 도울 수 있습니까? 어쩌면 내가 기본 뒤에 읽을 수있는 링크가 있습니다.
감사합니다. 마이클
첨부 :
내 코드는 순간에 prety 간단하다.
if (Meteor.isServer) {
Temperatures.insert({sum_samples: 0, type: "Temperatures"});
var test = Temperatures.findOne({}, {sort: {timestamp_minute: -1}});
Temperatures.update({_id: test._id},{$set: {"Sensor.32.value": 2032, "Sensor.32.real": true} });
}
간단한 스키마는 그렇게했습니다.
Schemas = {};
Temperatures = new Meteor.Collection("Temperatures");
Schemas.seriesData = new SimpleSchema({
timestamp_minute: {
type: Date,
defaultValue: new Date
},
num_samples: {
type: Number,
defaultValue: 0
},
sum_samples: {
type: Number,
defaultValue: 0
},
type: {
type: String
},
Sensor: {
type: Object,
blackbox: true,
optional: true,
autoValue: function(){
if (this.operator === null && !this.isSet){
var object = {};
for(var i=0; i<=59;i++){
object[i]={value: 0, real: false};
}
return object;
}
}
}
});
Temperatures.attachSchema(Schemas.seriesData);
먼저 코드를 공유하여 도와 드리겠습니다. –
코드를 추가했습니다. 코드 만 테스트하기 때문에 지금은 꽤 간단합니다. 바라기를 이것은 당신을 돕는다. – Michael