在更新时使用mongodb条目

时间:2015-05-10 05:43:11

标签: mongodb pymongo

我有一个mongdb结构,如下所示:

{'_id':1, 'aggregate_sum': 12, 'total':10, 'mean':1.2}

我想更新这个数据库的意思。

num =12
value = db.find_one({'_id':1})
new_mean = (value['mean']*value['total'] + num )/(value['total']+1)
db.update({'_id':1, {'$inc':{'aggregate_sum':num, 'total':1},{"$set" :{'mean':new_mean})

我可以阻止第一次调用mongo,而是更新飞行中的平均值。我正在考虑对thisjavascript处理的当前mongodb对象进行一些参考?

1 个答案:

答案 0 :(得分:1)

您目前无法在更新中引用其他字段(尚未)。您可以尝试遍历文档并更新每个文档,然后调用save方法:

num = 12
for value in db.find({'_id': 1}):
    new_mean = (value['mean']*value['total'] + num )/(value['total'] + 1)
    value['aggregate_sum'] += num
    value['total'] += 1
    value['mean'] = new_mean
    db.save(value)