【发布时间】:2013-03-07 03:20:38
【问题描述】:
我正在尝试根据this document 将预先聚合的性能指标存储在分片 mongodb 中。
我正在尝试使用这样的 upsert 更新可能存在或不存在的记录中的分钟子文档(self.collection 是一个 pymongo 集合实例):
self.collection.update(query, data, upsert=True)
查询:
{ '_id': u'12345CHA-2RU020130304',
'metadata': { 'adaptor_id': 'CHA-2RU',
'array_serial': 12345,
'date': datetime.datetime(2013, 3, 4, 0, 0, tzinfo=<UTC>),
'processor_id': 0}
}
数据:
{ 'minute': { '16': { '45': 1.6693091}}}
问题在于,在这种情况下,“分钟”子文档始终只有最后一个 hour: { minute: metric} 条目,分钟子文档不会为其他时间创建新条目,它总是覆盖一个条目。
我也尝试过使用 $set 样式的数据条目:
{ '$set': { 'minute': { '16': { '45': 1.6693091}}}}
但它最终是一样的。
我做错了什么?
【问题讨论】: