替换mongo db文档中的部分数组

时间:2017-01-17 10:53:03

标签: mongodb pymongo bulkupdate

使用如下文档结构:

{
_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的值)?

0 个答案:

没有答案