我有一个时间序列数据的集合。
像这样:{ _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'对象是一小时内的分钟。 现在我想更新一个分钟值我测量和设置"真实"如果为真,则真实表示前面的值是实际测量的传感器值而不是初始值。
但我尝试过的所有Temperature.update()都没有用。 也许是因为我对流星和mongodb的了解很少,因为我是一个业余爱好程序员。 我总是想更新最新的条目。 有人可以帮帮我吗? 也许有一个链接,我可以阅读背后的基础知识。
谢谢。 迈克尔
附:
我的代码目前很简单。
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} });
}
简单的Schema我确实喜欢这样。
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);
答案 0 :(得分:0)
这可能是数字旁边的单引号吗?
Temperatures.update({_id: test._id},{$set: {"Sensor.'32'.value": 2032, "Sensor.'32'.real": true} });
我还建议传感器是阵列吗?像:
Sensor [
{ ... },
{ ... }
]