文档结构如下:
{
_id:"1234",
values : [
1,23,... (~ 2000 elements)
]
}
其中值代表一些时间序列
我需要更新 values 数组中的一些元素,我正在寻找一种有效的方法来做到这一点。元素的数量和要更新的位置各不相同。
我不想让整个数组回到客户端(应用层),所以我正在做类似的事情:
db.coll.find({ "_id": 1234 })
db.coll.update(
{"_id": 128244 },
{$set: {
"values.100": 123,
"values.200": 124
}})
更准确地说,我正在使用 pymongo 和批量操作
dc = dict()
dc["values.100"] = 102
dc["values.200"] = 103
bulk = db.coll.initialize_ordered_bulk_op()
bulk.find({ "_id": 1234 }).update_one({$set:dc})
....
bulk.execute()
你知道一些更好的方法吗?
是否可以在数组中表示一个范围,例如(从 l00 到 110 的值)?