更新时使用 mongodb 条目
using the mongodb entry while updating
我有一个如下所示的 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 的第一次调用,而是动态更新平均值吗?我正在考虑对正在处理的当前 mongodb 对象的一些引用,例如 javascript
?
中的 this
您目前无法在更新中引用其他字段(目前)。您可以尝试遍历文档并更新每个文档,然后调用保存方法:
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)
我有一个如下所示的 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 的第一次调用,而是动态更新平均值吗?我正在考虑对正在处理的当前 mongodb 对象的一些引用,例如 javascript
?
this
您目前无法在更新中引用其他字段(目前)。您可以尝试遍历文档并更新每个文档,然后调用保存方法:
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)