流星集合更新子文档
Meteor Collection Update Sub Document
我有一个时间序列数据集合。
像这样:
{ _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”对象是一小时中的分钟数。
现在我想更新我测量的一分钟值并将 "real" 设置为 true,real 表示之前的值是实际测量的传感器值而不是初始值。
但是我试过的所有 Temperature.update() 都不起作用。
也许是因为我对流星知之甚少,mongodb 因为我是一个爱好程序员。
我总是想更新最新的条目。
有人可以帮帮我吗?
也许有一个 link 在那里我可以阅读背后的基础知识。
谢谢。
迈克尔
附上:
目前我的代码非常简单。
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);
会不会是数字两边的单引号?
Temperatures.update({_id: test._id},{$set: {"Sensor.'32'.value": 2032, "Sensor.'32'.real": true} });
我也可以建议传感器是一个数组吗?喜欢:
Sensor [
{ ... },
{ ... }
]
我有一个时间序列数据集合。
像这样:
{ _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”对象是一小时中的分钟数。 现在我想更新我测量的一分钟值并将 "real" 设置为 true,real 表示之前的值是实际测量的传感器值而不是初始值。
但是我试过的所有 Temperature.update() 都不起作用。 也许是因为我对流星知之甚少,mongodb 因为我是一个爱好程序员。 我总是想更新最新的条目。 有人可以帮帮我吗? 也许有一个 link 在那里我可以阅读背后的基础知识。
谢谢。 迈克尔
附上:
目前我的代码非常简单。
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);
会不会是数字两边的单引号?
Temperatures.update({_id: test._id},{$set: {"Sensor.'32'.value": 2032, "Sensor.'32'.real": true} });
我也可以建议传感器是一个数组吗?喜欢:
Sensor [
{ ... },
{ ... }
]